一主一从
相同版本的数据库服务器两份;
主服务器ip: mater_ip
从服务器ip: slave_ip
关闭防火墙!关闭防火墙!关闭防火墙!
设置主库配置文件 my.cnf
log-bin=mysql-bin //打开数据库二进制日志
binlog-do-db = {需要同步的数据库名称}
保存后重启数据库服务
用root账号登录mysql
新增用户并授权给从库:GRANT replication slave ON . TO ‘slave’@’%’ identified by ‘123456’; //新增用户名为slave 密码为123456 “%”表示开放所有,可替换为从服务器的ip
接下来执行 show master status; 记录 “主服务器的日志文件” 以及 “位置”,部署从库需要用到。
设置从库配置文件 my.cnf
log-bin=mysql-bin
server-id = 14 //主要修改这个id,不能与主库一致
binlog_do_db = horse
保存后重启数据库服务
用root账号登录mysql
设置slave连接 : change master to master_host=‘slave_ip’,master_user=‘slave’,master_password=‘123456’, master_log_file=’{主服务器的日志文件}’,master_log_pos={位置};
设置好后 执行 start slave
然后 查询状态 show slave status\G // \G查看更美观
找到这两个:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
显示这样后就算成功了
如果不是这样 就看看 Last_SQL_Error 这个参数后面显示什么错误
也可以回到主库 执行 show slave hosts 查看正在连接的从库,有则会显示
接下来就可以尝试修改主库的数据,看看从库有没同步了
关闭防火墙:
1、systemctl status firewalld //查询状态
2、systemctl stop firewalld //关闭防火墙 只需要执行这个就好
3、systemctl start firewalld //开启防火墙