实验准备:
两台服务器,安装mysql
实验步骤:
1、修改配置文件,开启bin-log日志,并设定不同的 server-id
vim /etc/my.cof
log-bin=mysql-bin
server-id=1
2、在主服务器上授权,在从服务器上面保存授权的信息
主服务器授权
mysql> grant replication slave on *.* to slave@‘192.168.37.132‘ identified by ‘123456‘; #可能会因为mysql密码政策的原因,修改相应配置 https://www.cnblogs.com/yellowzunzhi/p/13021479.html
从服务器保存授权
mysql > change master to master_user=‘slave‘, master_password=‘123456‘,master_host=‘192.168.37.130‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=154;
#其中 master_log_pos 在主服务器上查询:show master status;
执行后会在从服务器的 /var/lib/mysql 下面有 master.info 授权信息文件
3、开启从服务器 start slave,并查看信息
mysql> start slave;
mysql> show slave status\G; #查看从服务器的内容
4、测试:
在主服务器上创建数据库,会在从服务器同步出现。
错误:
1、如果在查看从服务器内容时,slave_IO_Running显示为 NO 或者 Connection;
master_mysql> show variables like ‘server_id‘; slave_mysql> show variables like ‘server_id‘; 查看是不同的。 但查看/var/lib/mysql/auto.cnf发现server-uuid一致,原因:从虚拟机拷贝而来。 解决:修改从服务器/var/lib/mysql/auto.cnf文件,使server-uuid不一致即可,重启。 注意:主从同步配置完毕后,从服务器重启后会自动读取主服务器日志并同步数据。
修改UUID后重启服务即可