mysql 主从复制配置教程(windows)
1、主机配置
修改配置文件:my.ini(从安装路径查找)
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=ROW
提示:binlog_format 有三种格式,推荐使用Row,因为很多binlog恢复工具只能恢复Row格式的数据
Statement:只记录执行的 SQL,不需要记录每一行数据的变化,因此极大的减少了 binlog 的日志量
Row:会非常清楚地记录下每一行数据修改的细节,这样就不会出现 Statement 中存在的那种数据无法被正常复制的情况。不过 Row 格式也有一个很大的问题,那就是日志量太大了
Mixed:这种格式实际上就是 Statement 与 Row 的结合
2、从机配置
修改配置文件:my.ini(从安装路径查找)
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
3、后续步骤
(1)主机、从机重启mysql服务
(2)主机从机都关闭防火墙(这样不安全,可以只开放mysql端口)
(3)在主机上授权
#mysql5.x
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ‘password’ WITH GRANT OPTION;
flush privileges;
#mysql8
update user set host='%' where user='root';
flush privileges;
grant all privileges on *.* to root@'%' with grant option;
flush privileges;
提示:将其中password替换成自己数据库密码
(4)在主机上查询master状态
show master status;
提示:记录下File和Position的值,执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
(5)在从机上执行以下命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_PORT = 3306,
MASTER_USER='root',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值;
(6)启动从服务器复制功能
start slave;
(7)查看从服务器状态
show slave status\G;
下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
(8)测试
可以执行几个sql操作,测试一下