mysql主从

17

mysql主从

  • M-S 主-从 主有读写 从只有读 从是把主的binlog拿过来重新跑了一遍

主从复制的功能

  • 对master数据的备份

  • 实现数据库集群功能,升级高可用性

  • 实现读写分离,实现降低主库的读取压力

实操

  • 一主两从
  1. 配置master

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id=1

binlog-ignore-db=mysql

systemctl restart mariadb


mysql

create user 'rep'@'%' identified by 'zhaoxi';

grant replication slave on . to 'rep'@'%';

flush privileges;

flush tables with read lock; ## 锁库

show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      1200 |              | mysql            |

+------------------+----------+--------------+------------------+

## 要记住file名字和pos的值

2.配置slave


vi /etc/my.cnf

[mysqld]

server-id=2   ## slave2机器设置3

relay-log=relay-bin

systemctl restart mariadb


mysql

change master to 

master_host='192.168.32.106',

master_user='rep',

master_password='zhaoxi',

master_log_file='mysql-bin.000001',

master_log_pos=1200;

start slave;

show slave status \G

## 检查slave_io_running和slave_sql_running是否都为yes

3.完成配置


##master

unlock tables;

4.验证复制


##master:

create database test_ms;

create table test_table(id int auto_increment primary key,name varchar(50),status varchar(50));

insert into test_table (name,status) values ('zhaoxi','action'),('guoyihan','down');

##slave

select * from test_ms.test_table;

+----+----------+--------+

| id | name     | status |

+----+----------+--------+

|  1 | zhaoxi   | action |

|  2 | guoyihan | down   |

+----+----------+--------+