Mysql
Mysql入门系列
Mysql字典
Mysql安装部署
原有环境部署多个版本
从头部署多个版本
Mysql-5.6 二进制多实例部署
centos7部署二进制mysql-5.6
centos7部署mysql-5.7
Mysql原理说明
索引的数据结构及算法原理
千万的数据,你是怎么查询的?
分库分表方案
Mysql资料 视图
Mysql资料 查询条件
Mysql资料 存储索引
Mysql资料 数据类型
Mysql资料 主键
Mysql资料 索引
Mysql资料 锁机制
Mysql资料 查询SQL执行顺序
Mysql资料 用户权限详解
Mysql资料 慢查询
Mysql服务维护
shell脚本 mysql-binlog分析
shell脚本 binlog方式增量备份mysql
shell脚本 mysqldump方式全备份mysql
阿里云RDS备份 恢复到本地
xtra+binlog增量备份脚本
xtrabackup备份脚本
mysqldump备份容灾脚本
Mysql资料 xtrabackup
Mysql资料 mysqldump
数据恢复binlog2sql
数据备份类型简介
Mysql资料 Binlog
Mysql安全检查
Mysql配置文件
shell脚本 比较mysql配置文件
Mysql脚本 优化检测
Mysql配置文件 16c64g优化
Mysql配置文件 4c8g优化
Mysql配置文件 innodb引擎
Mysql配置文件 binlog和慢日志
Mysql配置文件 扩展详细配置
Mysql配置文件 基本设置
Mysql配置文件 客户端
show_slave_status参数详解
Mysql_SQL语句
Mysql状态信息查询
用户和密码管理操作
表和字段管理操作
库管理操作
基本操作
Mysql集群
Innodb Cluster集群部署配置
什么是mysql innodb cluster?
主从复制参数详解
Mysql配置 主主同步
Mysql配置 主从同步
Mysql新闻
Mysql使用案例
shell脚本 安全删除MySQL大表
shell脚本 检查mysql节点数据一致性
shell脚本 批量查看mysql表条目数
Mysql报错合集
Mysql一致性效验_pt工具
mysqlslap基准测试
Mysql实例 数据库优化
Mysql解决主从慢同步问题
Mysql实例 表设计
Mysql脚本 生成测试数据
本文档使用 MrDoc 发布
-
+
home page
Mysql配置 主主同步
[TOC] ## 一.准备 1.两个数据库版本最好一致 2.两个数据库内数据保持一致,若不一致,可手动调整,比如A比B多一个库,那将这个库导入到B库,达到一致。 A数据库:182.92.172.80 B数据库:123.57.44.85 ## 二.操作 ### A数据库操作 1.开启binlog `vim /etc/my.cnf` ```python [mysqld] log-bin=mysql-bin #开启二进制日志 server-id=1 #设置server-id,不能一样 ``` 2.重启mysql,创建用于同步的用户账号 `systemc restart mysql` 登陆数据库 `mysql -hlocalhost -uname -ppassword` 创建用户并授权:用户:test密码:123456,ip配置为B的IP `CREATE USER 'test'@'123.57.44.85' IDENTIFIED BY '123456';` 分配权限 `GRANT REPLICATION SLAVE ON *.* TO 'test'@'123.57.44.85';` `flush privileges;` 锁表,禁止写入,当前窗口不能退出,这时候开启另一个终端继续操作 `flush table with read lock;` 3.新窗口操作,查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73): `SHOW MASTER STATUS;` ```python +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 73 | | | +------------------+----------+--------------+------------------+ ``` 4.将当前数据导出,如果两数据库不一样,手动调整 `mysqldump -u root -p --all-databases > /root/alldb.sql` 5.解锁查看binlog日志位置,如果没变证明锁定成功。从库将从这个binlog日志开始恢复 `unlock table;` ```python SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 73 | | | +------------------+----------+--------------+------------------+ ``` ### B数据库操作 1.导入数据 `mysql -uroot -p < alldb.sql` 2.修改配置文件 `vim /etc/my.cnf` ```python [mysqld] log-bin=mysql-bin #开启二进制日志 server-id=2 #设置server-id,必须唯一 ``` 3.重启mysql,配置同步 `systemctl restart mysql` 需要A服务器主机名,登陆凭据,二进制文件的名称和位置 `CHANGE MASTER TO MASTER_HOST='182.92.172.80', MASTER_USER='test', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=567;` `start slave;` 4.查看slave状态: `show slave status\G;` ```python *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 182.92.172.80 Master_User: rep1 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000013 Read_Master_Log_Pos: 11662 Relay_Log_File: mysqld-relay-bin.000022 Relay_Log_Pos: 11765 Relay_Master_Log_File: mysql-bin.000013 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: ... ``` Slave_IO_Running: Yes Slave_SQL_Running: Yes 都是yes即可 5.配置作为A的主 创建用户并授权:用户:test密码:123456,ip配置为A的IP `CREATE USER 'test'@'182.92.172.80' IDENTIFIED BY '123456';` 分配权限 `GRANT REPLICATION SLAVE ON *.* TO 'test'@'182.92.172.80';` `flush privileges;` 这次不用锁表了,因为B在同步A的数据,当前保持一致了。 6.新窗口操作,查看master状态,记录二进制文件名(mysql-bin.000004)和位置(254): `SHOW MASTER STATUS;` ```python +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 254 | | | +------------------+----------+--------------+------------------+ ``` ### A数据库操作 需要B服务器主机名,登陆凭据,二进制文件的名称和位置 `CHANGE MASTER TO MASTER_HOST='123.57.44.85', MASTER_USER='test', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=254;` `start slave;` 4.查看slave状态: `show slave status\G;` ```python *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 123.57.44.85 Master_User: rep1 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000013 Read_Master_Log_Pos: 11662 Relay_Log_File: mysqld-relay-bin.000022 Relay_Log_Pos: 11765 Relay_Master_Log_File: mysql-bin.000013 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: ... ``` Slave_IO_Running: Yes Slave_SQL_Running: Yes 都是yes即可
日行一善
Dec. 10, 2020, 2:47 p.m.
Share documents
Collection documents
Last
Next
Scan wechat
Copy link
Scan your mobile phone to share
Copy link
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
QQ粉丝交流群:882382311
Markdown文件
share
link
type
password
Update password