我在不同区域(eu, us)有两台服务器连接到同一个 mysql 数据库,我从谷歌云 sql 第二代开始,但它只在us区域可用。
我们的想法是在新区域中添加第二个 sql 节点,eu但我找不到任何有关 Master-Master 复制的文档,因此目前不支持。这个对吗?
附言。我的两台服务器都需要读/写访问权限。
使用我的可操作 google sql us,我可以:
我在
eu.配置
eu为us.配置
eu为us.
我真的很困惑!任何帮助将不胜感激。
/奥斯
我在不同区域(eu, us)有两台服务器连接到同一个 mysql 数据库,我从谷歌云 sql 第二代开始,但它只在us区域可用。
我们的想法是在新区域中添加第二个 sql 节点,eu但我找不到任何有关 Master-Master 复制的文档,因此目前不支持。这个对吗?
附言。我的两台服务器都需要读/写访问权限。
使用我的可操作 google sql us,我可以:
我在eu.
配置eu为us.
配置eu为us.
我真的很困惑!任何帮助将不胜感激。
/奥斯
Google Cloud SQL 不支持 Master-Master。
解决方案来自: https ://www.ryadel.com/en/mysql-master-master-replication-setup-in-5-easy-steps/
在google云平台MySql 5.7的Linux Ubuntu 16.04上成功实现在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. 创建复制器用户
在 sql1 和 2 上配置(复制器密码可以相同,也可以不同)
mysql -u 根目录 -p
P@ssW0rd2020
CREATE USER 'replicator'@'%' IDENTIFIED BY 'P@ssW0rd2020'; 授予复制奴隶。TO 'replicator'@'%' 由 'P@ssW0rd2020' 识别;刷新特权;
F. 从没有数据库的新 VM 开始(更好)或相互导入/导出数据库到 sql1 和 2 https://dev.mysql.com/doc/refman/8.0/en/copying-databases.html
G.配置从sql1到sql2的复制(使sql2成为sql1的slave)
在 sql1 上
显示主状态;
示例输出:+------+----------+--------------+- -----------------+ | 文件 | 职位 | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+---------+--------------+---- --------------+ | mysql-bin.000001 | 448 | 示例 | 测试、信息| +------------------+---------+--------------+---- --------------+ 1 行(0.00 秒)
在 sql2 上
停止奴隶;将 MASTER 更改为 MASTER_HOST = '104.154.225.215',MASTER_USER = '复制器',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; 启动奴隶;
一、测试复制
成功是甜蜜的!