环境
- 操作系统:CentOS 7
- Mysql版本:8.0
- MysqlServer_1:M1(主)
- MysqlServer_2:M2(从)
实现
- 修改M1配置文件:vim /etc/my.cnf (my.cnf路径位置根据自己实际路径更改)
#主服务器唯一ID server-id=1 #启用二进制日志 log-bin=mysql-bin # 设置不要复制的数据库(可设置多个) binlog-ignore-db=mysql binlog-ignore-db=information_schema #设置需要复制的数据库 binlog-do-db=需要复制的主数据库名字 #设置logbin格式 binlog_format=STATEMENT
|
- 修改M2配置文件:vim /etc/my.cnf (my.cnf路径位置根据自己实际路径更改)
#从服务器唯一ID server-id=2 #启用中继日志 relay-log=mysql-relay
|
依次重启主机M1、从机M2服务,注意是指重启Mysql服务不是机器重启
在主机上建立帐户slave
create user 'slave'@'%' identified by '123456';
|
- 授权,这里只授予SLAVE权限,当然也可以授所有权限
grant REPLICATION SLAVE on *.* to 'slave'@'%';
|
- 在M1主机MySQL里执行命令,查询master的状态
记录下File和Position的值 注意:执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
- 在M2从机上配置需要复制的主机,修改完毕之后再M2服务上执行该SQL
CHANGE MASTER TO MASTER_HOST='主机的IP地址', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值;
|
- 启动从服务器复制功能
- 查看从服务器状态
下面两个参数都是Yes,则说明主从配置成功! - Slave_IO_Running: Yes - Slave_SQL_Running: Yes 接下来就可以去M1主机新建库、建表等测试了,观察M2从机服务是否会跟着改变 如何停止从服务复制功能
如果需要重新配置,需要先停止,然后重置
重置
注意事项
如果使用Mysql的主从复制,需要考虑的问题,比如如何持续保证数据一直问题,就比如一旦主从关系断开之后,再次建立主从,比如可以写脚本去监控Mysql服务等等