原理简介:
利用日志功能,将主服务器所进行的操作通过日志让从服务器去进行模仿完成主从复制
具体实现:
主服务器ip addr:192.168.217.132
从服务器ip :192.168.217.131
1.修改主服务器my.cnf文件(从服务器也要在这个文件加这三行代码,server_id要和主服务的server_id不同)
增加红色箭头的这三行代码,这三行代码位置要加在scoket=var/lib/mysql/mysql.sock下面
server_id 是唯一的,用来标识。log-bin=mysql-bin表示开启日志服务,do_db=test表示共享数据库为test
完成后 :wq
保存退出
2.重启mysql服务
service mysql restart;
我的机器这一步会出错,然后会提示我用下面这句
/bin/systemctl restart mysqld.service
3.在主服务器为从服务器分配账号,用于共享主服务器的日志文件
登录root用户
mysql -uroot -p
然后
GRANT SELECT on *.* TO reader@'%' IDENTFIED BY '123456';
然后在主服务器
show master status;
4.在从服务器进入mysql
然后输入
stop slave;
开始配置
change master to master_host='192.168.217.132', master_user='slave', master_password='123456', master_log_file='mysql-bin.000017', master_log_pos=120;
其中
master_log_file='mysql-bin.000017', master_log_pos=120;
中''中的具体值要替换为其中的具体值(如下图)
然后
start slave;
再次开启slave同步
然后在从服务器
8.验证结果
通过navicat远程连接mysql,然后在主服务器的数据库创建数据库test,尝试对数据库test进行操作
如果从服务器也会有相应操作,恭喜你,你完成了一次主从服务器的配置。
防火墙端口记得开放
firewall-cmd?--zone=public? --add-port=3306/tcp?--permanent?
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent