在上篇CentOS7安装mysql遇到的问题(记录篇)后(https://blog.csdn.net/wszhlzjl/article/details/108887808),进入下一步,主从复制配置。
我是通过虚拟机安装的主数据库,从数据库是通过克隆的方式,这就会有主从数据库UUID一样的问题,后面会讲到修改方法。
一台虚拟机又克隆了两台
192.168.1.31 master
192.168.1.56 slave
常用命令 启动/停止
service mysqld start|stop|restart
systemctl start|stop|restart mysqld
1、配置主库:
1)、授权给从数据库服务器
mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.1.56' identified by '123456';
mysql>FLUSH PRIVILEGES;
2)、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效
vim /etc/my.cnf
在该配置文件[mysqld]下面添加下面内容:
[mysqld]
log-bin=/var/lib/mysql/binlog //同步的log记录文件
server-id=1
binlog-do-db = cmdb //同步的数据库
还可以设置不同步的数据库:
如不同步mysql库和test库
binlog-ignore-db = mysql
binlog-ignore-db = test
修改配置文件后,重启服务:service mysqld restart,切记切记!
3)、查看主数据库状态
show variables like 'log_bin%';
show master status;
查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复
2、从数据库配置:
1)、还是从配置文件着手,在/etc/my.cnf 添加下面配置:
[mysqld]
server-id=2
修改配置文件后,重启服务:service mysqld restart,切记切记!
从mysql5.5+版本主从复制的从数据库配置变量,需要在从库上用命令来设置:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.31',
MASTER_PORT=3306,
MASTER_USER='rep1',
MASTER_PASSWORD='test123456',
MASTER_LOG_FILE='binlog.000001',
MASTER_LOG_POS=154; #后面两个参数的值与主库保持一致
2)、查看从数据库状态
show slave status\G;
这时就会报如下错误:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
these UUIDs must be different for replication to work.
解决方案:找到对应的 uuid 发现该文件在/var/lib/mysql/auto.cnf下,将里面uuid的值随便改一个即可
重启服务:service mysqld restart;
3)、再次查看从库状态
这样主从复制就配置完了。
可以试着修改一下主库,再看一下从库是否也改变了。