一、Windows中的设置
在my.ini文件中添加
#主服务器唯一ID【必配】
server_id=1
#启用二进制日志【必配】
log_bin=数据库地址\data\mysqlbin
添加后重启数据库
- 创建一个新用户用来远程连接使用:
create user 'test'@'%' IDENTIFIED BY '123456'
- 刷新mysql
flush privileges;
- 授予从机复制表权限
GRANT REPLICATION SLAVE ON *.* TO 'test'@'从机ip' IDENTIFIED BY '123456';
在windows的服务中重启mysql
- 重新使用root用户登录Mysql,执行如下sql:
show master status;
显示结果如下:
+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
| mysqlbin.000001 | 1524 |
+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
1 row in set (0.00 sec)
记住此处的file名称和position。
之后关闭Windows和Linux的防火墙
二、Linux中文件配置
- 编辑my.cnf文件 vim /etc/my.cnf 添加内容
#需要比主机的小
server-id=2
#启用二进制日志
log-bin=mysql-bin
- 重启服务器 service mysql restart
- 登录Slave从服务器,连接Master主服务器 输入以下命令:
change master to master_host = '主机IP', master_port=3306, master_user='test', master_password='123456', master_log_file='mysqlbin.000001', master_log_pos=1524;
备注:master_host对应主服务器的外网IP地址,master_port对应主服务器的端口(3306),master_log_file对应show master status显示的File列:mysqlbin.000001,master_log_pos对应Position列:1524,否则有可能出现同步失败。
- 重启服务器 service mysql restart
- 登录MySQL状态下,启动Slave数据同步。
start slave;
- 最后可以查看下状态:
show slave status\G
当从库的 IO线程和SQL线程的状态都是yes时,说明主从模式配置成功。
如果需要重置
主机使用
reset master;
从机使用
reset slave;
之后将两个服务重启即可。