Windows mysql 主从复制

一、操作系统

主从 操作系统 mysql版本 IP地址
win10 5.7 192.168.1.102
win7 5.5 192.168.1.121

二、主数据库操作

2.1 安装目录下找到my.ini文件,在mysqld下添加主服务器配置

server-id=1    #服务器id
log-bin=E:\MySQL Server 5.7\mysql-bin    二进制文件存放路径
binlog-do-db=test1    需要同步的数据库

保存重启mysql。

2.2 授权

2.2.1 连接数据库:mysql -u用户名 -p密码

2.2.2 设置权限:grant replication slave,reload,super on *.* to [email protected] identified by '123456'; 

ps: 给从服务192.168.1.121添加权限,用户名:root,密码:123456

2.2.3 查看状态:show master status; # 找到File 和 Position 的值记录下来

三、从数据库操作

3.1 在mysql安装目录下找到my.ini文件,在mysqld下添加从服务器端配置:

server-id=2   服务器id

replicate-do-db=test1    需要同步的数据库

3.2 从服务器上首先测试连接主数据库:mysql -h 192.168.1.102 -uroot -p123456

ps:如果连接不上,查看主服务器的防火墙是否关闭。

3.3 连接从服务器:mysql -uroot -p123456

修改对数据库的连接参数:

mysql>change master to master_host='192.168.1.102',master_user='root',master_password='123456', master_log_file='mysql-bin.000002',master_log_pos=18104;(这里输入的mysql-bin.000002和18104请替换为2.2.3中查询出来的值 否则不会同步的)

3.4 启动slave线程:start slave;

3.5 查看slave状态:show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果是这种情况,则表明同步成功!

四、遇到的问题及解决方法

4.1 在执行完3.4跟3.5的操作后,发现错误:

Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replication events with the checksum that master is configured to log; the first event 'mysql-bin.000002' at 18104, the last event read from './mysql-bin.000002' at 18104, the last byte read from './mysql-bin.000001' at 123.'

解决办法:

这个错误应该是slave为低版本造成的,在主数据库的my.ini中添加binlog_checksum =none。重启mysql

执行show master status; 

从服务器重新连接。即可解决该问题!

4.2 在同步之前需要保证两个数据库中的数据一致,因此需要将主服务器的数据库(test1)导出,并在从服务器中导入。

4.2.1 导出:mysqldump -uroot test1 -p123456 >E:\test1.sql

4.2.2 导入:mysql> source E:\test1.sql;

你可能感兴趣的:(mysql,主从复制)