概述:
复制情况分为多种,该案例为简单单向复制。
环境配置:
master 192.168.2.44
slave
192.168.2.45
mysql版本:5.7.26
OS:CentOS 7.8
磁盘:6G
内存:4G
1.编辑配置文件
主库:
[mysqld]
log-bin =
mysql-bin
server_id=1
从库:
[mysqld]
server_id=2
2.在主库创建复制用户
create user 'repl'@'192.168.2.45' identified by
'repl123';
grant replication slave on *.* to 'repl'@'192.168.2.45';
验证复制用户是否有效及网络是否正常
mysql -h 192.168.2.44 -urepl -prepl123
3.获取主库的备份
为方便起见,这里使用mysqldump进行备份,备份集通过scp远程拷贝到从库上。
mysqldump -S /tmp/mysql.sock --single-transaction
--master-data=2 -E -R --triggers -A >full_backup.sql
scp full_backup.sql 192.168.2.45:/root
4.基于主库的备份恢复从库
mysql -S /tmp/mysql.sock < /backup/full_backup.sql
5.建立主从复制
确定一下master_log_file,master_log_pos
grep -m 1 "CHANGE MASTER TO" full_backup.sql
基于上面位置点信息,从库执行如下命令:
change master to
master_host='192.168.2.44',
master_user='repl',
master_password='repl123',
master_log_file='mysql-bin.000001',
master_log_pos=617;
6.开启主从复制
从库执行
start slave;
7.查看主从状态
show slave status\G
重点关注两列输出:Slave_IO_Running和Slave_SQL_Running,均为yes代表主从搭建成功。
此处可能出现不同步的问题:
Slave_IO_Running: No
--报错原因:The slave
I/O thread stops because master and slave have equal MySQL server UUIDs; these
UUIDs must be different for replication to work.
Slave_SQL_Running: Yes
问题原因:
为了测试,我克隆了两台虚拟机作为主机和从机,所以就报了此错,修改uuid即可
解决办法:
[从库]
# find / -name auto.cnf
/data/mysql/data/auto.cnf
vi /data/mysql/data/auto.cnf
[auto]
server-uuid=4849b95a-ac9b-11ef-9e48-08002708ae02
重启从库,重启slave服务,再次验证。
-----------------------------完-------------------------------------
至此,简单的单向同步搭建完毕。-sinahan




