Mysql主从
主服务器
-
创建用户
create user “for_rep”@“从服务器IP地址” IDENTIFIED by “123456” -
授权
grant replication slave on . to “for_rep”@“从服务器IP地址” IDENTIFIED by “123456” -
查看用户权限
SHOW GRANTS FOR “for_rep”@“从服务器IP地址”; -
修改Mysql配置
vim /etc/my.cnf
log-bin=mysql-bin
binlog_format=mixed
server-id=1
read-only=0
binlog-do-db=db
auto-increment-increment=2
auto-increment-offset=1
-
重启数据库
-
查看主服务器信息
show master status\G -
导出数据库SQL
mysqldump --master-data -uroot -p gongzuotai > /root/db.sql
从服务器
-
在从服务器创建数据库,并导入SQL
-
打开从服务器B的中继日志relay_log
vim /etc/my.cnf
log-bin=mysql-bin
binlog_format=mixed
server-id=2
replicate-do-db=db
relay_log=mysqld-relay-bin
log-slave-updates=ON
- 配置从服务器
CHANGE MASTER TO master_host=‘主服务器IP地址’, master_user=‘for_rep’, master_password=‘123456’, master_log_file=‘mysql-bin.000001’, master_log_pos=154;
-
查看从服务器信息
show slave status\G -
重启数据库
重启后发现第10步骤提示mysql Slave_IO_Running:NO
问题解决
-
查看从数据库的日志
-
tail /var/log/mysqld.log
-
发现如下报错:
The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. -
找到对应的 uuid 发现该文件为/var/lib/mysql/auto.cnf
-
vim /var/lib/mysql/auto.cnf
-
将里面uuid的值随便改一个即可
-
[auto]
server-uuid=ba32605a-fcf9-11ec-a2a5-000c2935b536
重启从数据库服务:
完事