准备工作
关闭防火墙
数据库授权允许远程访问
grant all privileges on . to root@’%’ identified by “password” with grant option;
flush privileges;
主从同步原理图
找到配置文件(如果是linux,则是my.cnf)![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b28f80e9d8f659fd838c11d7d9beecbc.png)
修改my.ini配置文件
#id
server-id=1
#二进制日志文件
log-bin="D:/MySQL/MySQL Server 5.5/data/mysql-bin"
#错误记录文件
log-error="D:/MySQL/MySQL Server 5.5/data/mysql-error"
#主从同步时 忽略的数据库
binlog-ignore-db=mysql
#(可选)指定从从同步时,同步哪些数据库
binlog-do-db=test
查看配置完的主机
主机授权从机
GRANT REPLICATION slave,reload,super ON *.* TO 'root'@'192.168.5.%' IDENTIFIED BY 'root';
flush privileges;
从机修改my.ini
#id
server-id=2
#二进制日志文件
log-bin="D:/MySQL/MySQL Server 5.5/data/mysql-bin"
#指定同步的数据库
replicate-do-db=test
从机授权哪台计算机为主机(注:授权是双方的,主机授权从机,从机也要授权主机)
CHANGE MASTER TO
MASTER_HOST = '192.168.5.169',
MASTER_USER = 'root',
MASTER_PASSWORD = 'root',
MASTER_PORT = 3306,
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 107;
退出并重新启动查看从机的状态
退出mysql
右击重新启动mysql
启动从机
查看从机状态
可能出现以下问题及解决
报错日志信息:
排查:
1、查看主机的severid
show variables like ‘server_id’;
2、查看从机的serverid
show variables like ‘server_id’;
原因:从机的serverid没有生效,还是1,可能是mysql安装的主从版本不一致,也可能是其他问题
解决方案:
stop slave;
set global server_id = 2;
start slave;