- 本机环境:win10
- 数据库版本:mysql5.7
- 环境准备:两个或两个以上的mysql数据库
- 在主数据库中创建slave账户并授权,用于同步数据
CREATE USER slave1; -- 创建用户
-- 授权 由于我的两个数据库服务都在本地 所以IP设置为:127.0.0.1
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'127.0.0.1' IDENTIFIED BY '123456';
- 修改主数据库my.ini配置 在[mysqld]下面增加下面几行代码
server-id=1 //数据库服务唯一标识
log-bin=master-bin //表示开启二进制日志
log-bin-index=master-bin.index
- 重启主库mysql服务,运行 SHOW MASTER STATUS,结果如下
- 修改从库my.ini配置 在[mysqld]下面增加下面几行代码
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
- 重启从库mysql服务
- 在从库上设置主库连接
CHANGE MASTER TO master_host='127.0.0.1', -- 主库 服务器Ip
master_port=3306, --
master_user='slave1', -- 连接主库的用户
master_password='123456', -- 连接主库的密码
master_log_file='master-bin.000001',-- Master服务器产生的日志
master_log_pos=0;
- 在从库上启动主从配置
START SLAVE;
- 在从库上查看 主从配置状态 SHOW SLAVE STATUS 显示结果如下:
-
如果Slave_IO_Running跟Slave_SQL_Running都为yes则表示主从配置成功
-
如果出现:Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs错误,找到data文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid不一样,重启数据库服务即可。
-
如果出现:Slave failed to initialize relay log info structure from the repository, Error_code: 1872错误,执行RESET SLAVE命令,然后重新执行第6,7步。
THE END