MySQL(Windows和Linux)主从复制

一、Windows中的设置

在my.ini文件中添加

#主服务器唯一ID【必配】
server_id=1
#启用二进制日志【必配】
log_bin=数据库地址\data\mysqlbin

添加后重启数据库

  1. 创建一个新用户用来远程连接使用:
create user 'test'@'%' IDENTIFIED BY '123456'
  1. 刷新mysql
flush privileges;
  1. 授予从机复制表权限
GRANT REPLICATION SLAVE ON *.* TO 'test'@'从机ip' IDENTIFIED BY '123456';

在windows的服务中重启mysql

  1. 重新使用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中文件配置

  1. 编辑my.cnf文件 vim /etc/my.cnf 添加内容
#需要比主机的小
server-id=2
#启用二进制日志
log-bin=mysql-bin
  1. 重启服务器 service mysql restart
  2. 登录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,否则有可能出现同步失败。

  1. 重启服务器 service mysql restart
  2. 登录MySQL状态下,启动Slave数据同步。
start slave;
  1. 最后可以查看下状态:
show slave status\G

MySQL(Windows和Linux)主从复制_第1张图片
当从库的 IO线程和SQL线程的状态都是yes时,说明主从模式配置成功。
如果需要重置
主机使用

reset master;

从机使用

reset slave;

之后将两个服务重启即可。

你可能感兴趣的:(MYSQL)