(1)为从库添加一个用户,在主库指定replication权限
用root用户登录从库,创建一个用于同步的用户,并为该用户授权。授予all权限,才能执行change master指令。
create user ‘yyk2’@’%’ identified by ‘yyk’;
grant all privileges on . to ‘yyk2’@’%’ identified by ‘yyk’;
登录主库,创建用户yyk2,并为从库的yyk2用户授予复制权限
grant replication slave on . to ‘yyk2’@’%’ identified by ‘yyk’;
(2)查看主库状态
show master status
记录File以及Position的值。
(3)在从库设置它的主库
退出从库,用已授权用户yyk2重新登录,并设置它的主库,此处要填写对应的File以及Position。
change master to master_host=‘127.0.0.1’,master_port=3306,master_user=‘yyk2’,master_password=‘yyk’,master_log_file=‘mysql-bin.000002’,master_log_pos=997;
(4)在从库开启数据库复制功能并查看是否成功
start slave;
show slave statusG;
如果有两个YES则表明成功。
6 问题总结(重要)
最容易出现的问题:
报错内容为:The slave I/O thread stops because master and slave have equal MySQL server UUIDs;these UUIDs must be different for replocation to work.
分别查看主从数据库的uuid,可以看到值相同
查看方式两种:
1、分别登录主库和从库,直接在命令行输入
show variables like ‘%server%’;
2、分别在主库和从库的Data文件夹下查看auto.cnf的内容。
这里需要修改server UUID
关闭slave:
stop slave
利用select uuid()自动生成一个uuid:
select uuid();
关闭MYSQL2服务在MYSQL2的安装路径下的Data文件夹下找到文件auto.cnf
修改其中的uuid的值,修改为上文随机生成的值0a3a8da-41d1-11e7-b4ae-60a44c65a128。
重启开启MYSQL2服务
进入从库:
start slave
show slave statusG;
再查看状态,成功。