mysql 基于binlog 实现主从复制。
原理:在主服务器上开启binlog功能生成二进制日志文件记录数据库的所有修改, 然后从服务器从主服务器上获取日志文件并执行,实现主服务器的任何修改都能同步到从服务器
操作步骤
配置主服务器
my.cnf
并重启mysql服务[mysqld] log-bin=mysql-bin server-id=1
配置从服务器
my.cnf
并重启mysql服务[mysqld] server-id=2
在主服务器上新建用于同步的mysql用户
GRANT REPLICATION SLAVE ON *.* to 'mysync'@'从服务器ip' identified by 'sync';
查看主服务器状态
show master status;
配置从服务器
change master to master_host='主服务器IP',master_user='sync',master_password='sync',master_log_file='第四步中的mysql-bin.000005',master_log_pos=第四步中的1956;
启用从服务器
start slave;
检查从服务器状态, Slave_IO_Runing及Slave_SQL_Runing必须为YES
show slave status\G
大功告成, 测试修改主服务器上的数据, 看从服务器会不会同步
其他
- 如果使用了复制的虚拟机, mysql服务的uuid可能会一样Slave_IO_Runing=No, 需要把从服务器mysqldata目录下的auto.cnf删掉然后重启mysql服务