参考https://blog.csdn.net/qq_41786285/article/details/109304126,https://blog.csdn.net/annita2019/article/details/106915826
主服务器(Master) 192.168.88.10
从服务器(Slave) 192.168.88.20
声明:如果主数据库本来就有数据,似乎主从数据库就不会把信息全部同步。需要自己手动同步
参考https://zhuanlan.zhihu.com/p/100863091
1)在主库上加锁,使只有只读权限。
mysql > flush table with read lock;
2)备份数据。
root@bogon ~]# mysqldump -uroot -p --all-databases|gzip > dump.sql.gz
3)解锁库(备份完成之后执行此步骤)
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
4)恢复到从库
mysql> source /home/admin/dump.sql;
在docker,或者主机mysql中
vim /etc/my.cnf
# 添加以下内容
[mysqld]
log-bin=mysql-bin #启动二进制日志
server-id=123455 #服务器ID号,一般以IP结尾的数字,必须设置不同
主服务(192.168.88.10)器操作
mysql> grant replication slave on *.* to asd@'192.168.88.20' identified by '123456';
mysql> flush privileges; #刷新配置
从服务器(192.168.88.20)操作
测试能否链接
mysql -h 192.168.88.10 -uasd -p123456
主服务器(192.168.88.10)操作
show master status;
在从服务器(192.168.88.20)的mysql命令行输入
change master to
master_user='asd', #授权用户
master_password='123456', #密码
master_host='192.168.88.10', #主机IP
master_log_file='mysql-bin.000003', #主服务器的二进制日志
master_log_pos=259; #当前日志大小
输入完之后推出输入库,到MySQL目录下,我们可以看到master.info这个文件。
在从服务器(Slave)上面登陆MySQL,输入:
start slave;
show slave status;
如果不是yes,很有可能是主服务器的备份数据发生了变化(比如log日志的大小变了)。这时候需要重新配置一下
# 停止当前slave服务
stop slave;
# 再配置一下
change master to
master_user='asd', #授权用户
master_password='123456', #密码
master_host='192.168.88.10', #主机IP
master_log_file='mysql-bin.000003', #主服务器的二进制日志
master_log_pos=259; #当前日志大小
# 再看看
show slave status;
先到主服务器(Master)上创建一个叫abc的库
create database abc;
然后到从服务器(Slave)上查看
show databases;