两台centos7安装同样版本的mysql:
主:192.168.124.12
从:192.168.124.14
注意:两台服务器的主机名不能相同(有可能从库导入主库的数据时报错)
安装文档:
https://blog.csdn.net/Doudou_Mylove/article/details/107048099
授权从库复制账号:
mysql>grant replication slave on *.* to 'root'@'192.168.124.14' identified by '123456';
mysql>flush privileges;
mysql>select user,host from mysql.user; //MySQL查看用户
所有库备份数据传到从服务器,主库解锁:
flush tables with read lock; #先锁表
mysqldump -uroot -p -A >master.sql
Enter password:
scp master.sql 192.168.124.14:/root/
mysql>unlock tables;
修改/etc/my.cnf,插入下面两条:
server-id=1 #唯一标识号
log-bin=mysql-bin #开启二进制日志
重启服务:
service mysqld restart
如果报错就杀掉进程重启:pkill mysqld
执行下面两个操作,记录File 和 Position的值从库执行同步的时候会用:
mysql> show variables like 'server_id';
mysql> show master status;
导入从库全部数据:
mysql -uroot -p <master.sql
修改/etc/my.cnf,插入下面两条:
server-id=2 #唯一标识号,这个数据要比主库的大
log-bin=mysql-bin #开启二进制日志
重启服务:
service mysqld restart
如果报错就杀掉进程重启:pkill mysqld
停止同步并执行同步命令最后启动同步;
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='192.168.124.12',master_user='root',master_password='123456',master_port=3306,master_log_file='mysql-bin.000002' ,master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
查看slave同步信息,标注两处为YES表示同步成功:
mysql> show slave status\G
主库随便创建一个库发现从库立马同步,搞定。