Linux&Win7下MySQL主从双向远程自动备份数据库
请分别在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,刷新数据库即可完成主从数据库.
相关推荐
-
nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”
nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”2025-02-26 00:38:21 -
php之多级目录下查找文件中是否含有某个字符串功能实现2025-02-26 00:36:35
-
mysql 启动不了1067错误如何解决?2025-02-26 00:33:31
-
MySQL简单INSERT超慢原因排查2025-02-26 00:22:42
-
mysql分布式数据库的主要构架是什么?2025-02-26 00:06:23