解决方案来自:
https://www.ryadel.com/en/mysql-master-master-replication-setup-in-5-easy-steps/
在谷歌云平台Linux Ubuntu 16.04上成功实现
MySql 5.7 将无法在 Debian 上加载。
/// 在 2 个虚拟机上安装 MySQL
A.在 VM sql1 和 sql2 上
apt update
apt install mysql-server -y
P@ssW0rd2020 P@ssW0rd2020
B.注释 bind-address 以允许全局访问
cd /etc/mysql/mysql.conf.d/
nano /etc/mysql/mysql.conf.d/mysqld.cnf
C.重启 MySQL 服务(cnf 改变)
systemctl restart mysql
systemctl status mysql
D.在 sql1 上
nano /etc/mysql/conf.d/mysql.cnf
[mysqld] // note: not [mysql]
server-id=1
log-bin="mysql-bin"
binlog-ignore-db=test
binlog-ignore-db=information_schema
replicate-ignore-db=test
replicate-ignore-db=information_schema
relay-log="mysql-relay-log"
auto-increment-increment = 2
auto-increment-offset = 1
-------------------------------------
systemctl restart mysql
systemctl status mysql
D.在 sql2 上
nano /etc/mysql/conf.d/mysql.cnf
[mysqld]
server-id=2
log-bin="mysql-bin"
binlog-ignore-db=test
binlog-ignore-db=information_schema
replicate-ignore-db=test
replicate-ignore-db=information_schema
relay-log="mysql-relay-log"
auto-increment-increment = 2
auto-increment-offset = 2
-------------------------------------
systemctl restart mysql (THIS WILL CREATE BIN LOG)
systemctl status mysql
again, flush privileges; ---supposed to
E.创建复制器用户
F。从没有数据库的新虚拟机开始(更好)或将数据库相互导入/导出到 sql1 和 2
https://dev.mysql.com/doc/refman/8.0/en/copying-databases.html
G.配置从 sql1 到 sql2 的复制
(使 sql2 成为 sql1 的从属)
-
在 sql1 上
显示主状态;
示例输出:
+------------------+---------+--------------+---- --------------+
|文件 |职位 | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+---------+--------------+---- --------------+
| mysql-bin.000001 | 448 |示例 |测试、信息|
+------------------+---------+--------------+---- --------------+
一组中的 1 行(0.00 秒)
-
在 sql2 上
停止奴隶;
将 MASTER 更改为 MASTER_HOST = '104.154.225.215', MASTER_USER = 'replicator', MASTER_PASSWORD = 'P@ssW0rd2020', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 448;
启动奴隶;
刷新权限;
H.对 sql2 重复(使 sql1 成为 sql2 的从属)
-
在 sql2 上
显示主状态;
示例输出:
+------------------+---------+--------------+---- --------------+
|文件 |职位 | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+---------+--------------+---- --------------+
| mysql-bin.000001 | 448 |示例 |测试、信息|
+------------------+---------+--------------+---- --------------+
一组中的 1 行(0.00 秒)
-
在 sql1 上
停止奴隶;
将 MASTER 更改为 MASTER_HOST = '35.198.195.130', MASTER_USER = 'replicator', MASTER_PASSWORD = 'P@ssW0rd2020', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 448;
启动奴隶;
我。测试复制
- 在 sql1 上创建一个数据库,它将在 sql2 上复制,反之亦然。
- 在 sql2 上创建一个数据库,它将在 sql1 上复制,反之亦然。
成功是甜蜜的! ?