Linux&Win7下MySQL主从双向远程自动备份数据库

31人浏览   2024-05-28 14:51:14

请分别在Windows系统和Linux系统卸载安装相同版本MySQL,经过两个系统两边的MySQL 5.5、5.6、8.0多个版本的主从试错和多次不懈努力,MySQL已实现远程双向主从复制,双向同步自动备份数据库。此处以Win7 64位与Linux相同版本(CentOS红帽版)的MySQL5.6.44为例:

#修改Linux主数据库的my.cnf文件,配置可直接复制粘贴:

[mysqld]

server-id=1

log-bin=mysql-bin

binlog-do-db=wfx

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

replicate_do_db=wfx

replicate_ignore_db=mysql

#修改Windows从数据库的my.ini文件(MySQL5.6.44 默认文件名是my_defaut.ini,请改成my.ini,花了N久想到直到最后凌晨才尝试,网上你怕是找不到)

[mysqld]

server-id=2

log_bin=mysql-bin

replicate_do_db=wfx

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

binlog-do-db=wfx

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

#MySQL服务器主从双向复制,远程自动备份数据库。

## 第一步、先完成单向同步,操作Linux主数据库(誰主誰从,你说了算):

change master to master_host='192.168.72.188',master_user='root',master_password='root';(此处均为Linux端IP、MySQL账号密码)

service mysql restart;

flush privileges;

show master status;(记下MASTER_LOG_FILE以及MASTER_LOG_POS填在下面从数据库配置中)

## 操作Windows从数据库:

STOP SLAVE;

change master to master_host='192.168.72.188',master_user='root',master_password='root';

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000012',MASTER_LOG_POS=3327;(对,上面的记录填在这一行)

START SLAVE;

SHOW SLAVE STATUS;

show status like 'slave%';

## 第二步、实现双向同步,操作Windows主数据库:

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO root@'%' IDENTIFIED BY '123456';

service mysql restart;

flush privileges;

show master status;

## 操作Linux从数据库:

STOP SLAVE;

change master to master_host='192.168.51.29',master_user='root',master_password='123456';

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000041',MASTER_LOG_POS=202;

START SLAVE;

SHOW SLAVE STATUS;

当Linux与Win上MySQL版本不同时可尝试以下方法,有成功的也有失败的,据称重启失效,等你测试回馈。

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO root@'%' IDENTIFIED BY '123456';

超级管理员权限下ETC中改my.cnf

[mysqld]

server-id=1 //服务器ID

log-bin=mysql-bin //开启日志记录

binlog-do-db=java1706 //只同步配置的这个数据库

进入mysql执行以下代码

set global binlog_checksum='NONE';

show variables like '%checksum%';

然后退出数据库执行 systemctl stop firewalld

service mysql restart;

主服务器配置完成,再进入数据库

show master status;

然后进入本地数据库执行以下代码

STOP SLAVE;

CHANGE MASTER TO MASTER_HOST='192.168.72.188',MASTER_USER='root',MASTER_PASSWORD='root';

CHANGE MASTER TO MASTER_LOG_FILE='刚才master中的logfile', MASTER_LOG_POS=刚才master中的Position值;

START SLAVE;

SHOW SLAVE STATUS;

如果slave_Io_State为结果是Waiting for master to send event

两个running结果是两个yes,刷新数据库即可完成主从数据库.

相关推荐