一、主库相关配置、设置
step1:主库配置文件
[mysqld]
# 数据库id,唯一
server-id = 1
# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编号命名二进制文件;
log-bin=master-bin
log-bin-index=master-bin.index
# 需要同步的数据库,如果还需要同步其他库,继续添加,如果不写默认同步所有库。
binlog-do-db=mytest
# 不需要同步的数据库
binlog-ignore-db=mysql
step2:执行命令创建允许从服务器同步数据的账户
grant replication slave on *.* to 'test'@'192.168.42.131' identified by 'test1234';
step3:备份要同步到从库的数据库数据(进行锁表,防止数据写入,从库配置完成后记得解除锁定,unlock tables;)
flush tables with read lock;
step4:查看主库position和file,从库同步时需要
show master status
二、从库相关配置、设置
step1:从库配置
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
replicate-do-db = mytest
relay_log=relay-bin
step2:停止slave同步进程
stop slave;
step3:把mysql备份文件传到从库机器,进行数据恢复
step4:执行以下命令,设置从库同步,
CHANGE MASTER TO MASTER_HOST='192.168.42.130',
MASTER_PORT=3306,
MASTER_USER='test',
MASTER_PASSWORD='test1234',
MASTER_LOG_FILE='master-bin.000006',
MASTER_LOG_POS=2244;
step5:开启slave同步进程
start slave;
step6:状态查看,都是yes,大功告成
mysql> show slave statusG
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
三、配置中遇到的问题总结
1.两台虚拟机互相ping不同(虚拟机网络连接模式:NAT模式)
解决:关闭防火墙
2.Slave_IO_Running: NO,主服务器和从服务器具有相同的MySQL服务器UUID,错误码:1593(英文错误提示信息:Slave I/O for channel '': Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593)
原因:是安装了mysql后直接克隆的虚拟机,主从数据库拥有相同的uuid
解决:找到安装目录下的auto.cnf,修改下值和主库不同即可
3.start slave 时报错(MySQL error code 1872 (ER_SLAVE_RLI_INIT_REPOSITORY): Slave failed to initialize relay log info structure from the repository)
原因:配置文件没有配置relay_log,或者配置了,但是被占用
解决:配置的值换一个名字,然后reset slave,按照从库配置步骤重新设置一下