mysql主从配置

1 部署环境

主(master_mysql):192.168.1.5 OS:Centos 7.2
从(slave_mysql):192.168.1.6 OS:Centos 7.2

2主配置(master_mysql配置)

vi /etc/my.cnf

server-id=1 #设置主服务器的ID
innodb_flush_log_at_trx_commit=2 #
sync_binlog=1 #开启binlog日志同步功能
log-bin=mysql-bin-5 #binlog日志文件名
binlog-do-db=IOT1 # 这个表示只同步某个库

3配置完成后,重启主库的mysql

service mysqld restart
登录mysql
mysql -u root -p

mysql>grant replication slave on . to ‘mark’@’192.168.1.%’ identified by 123456’;
授权给从数据库服务器用户名mark,密码123456,192.168.1.%使用通配符表示该网段下所有服务器均可使用

mysql>show master status ; ##查看主库的状态 file,position这两个值很有用,记一下。要放到slave配置中

1 row in set (0.00 sec)

4从配置(slave_mysql配置)

vi /etc/my.cnf

server-id=2
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin-6

5配置完成后,重启从库的mysql

service mysqld restart
mysql -u root -p ##登录mysql

mysql> change master to master_host=’192.168.1.5’, master_user=’mark’ ,master_password=’123456’, master_log_file=’mysql-bin-5.000002’ ,master_log_pos=906;
mysql> start slave;#开启从库 (stop slave:关闭从库)
mysql> show slave status G;
Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功

6验证主从

可以在主库上对数据进行操作,再在从库上刷新是否同步
常见BUG
在配置结束后,可能会出现
Slave_IO_Running: No
Slave_SQL_Running: Yes
在确认主服务器防火墙已关闭,互相可以ping通,id设置唯一的前提下,还出现这个问题,那可能就是克隆了虚拟机,只改server-id不行,两台服务器的mysql的uuid还是同一个
cp /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bk
备份该文件
service mysqld restart
重启mysql,会重新生成该文件,mysql的uuid已经被重新生成
然后再去从服务器重启slave
mysql> stop slave;
mysql> start slave;
mysql> show slave status G;
然后可以看到现在已经是启动正常了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

mysql主从死机后重新配置主从

主机重新配置主从
mysql> reset master;

mysql>show master status G;

从机重新配置主从
mysql> stop slave;

mysql> change master to master_host=’192.168.1.44’,master_user=’mark’,master_password=’123456’,master_log_file=’mysql-bin-5.000001’,master_log_pos=154;

mysql> start slave;

mysql> show slave status G;

原文地址:https://www.cnblogs.com/wdzhz/p/10748829.html