一.准备

1.两个数据库版本最好一致

2.两个数据库内数据保持一致,若不一致,可手动调整,比如A比B多一个库,那将这个库导入到B库,达到一致。

A数据库:182.92.172.80

B数据库:123.57.44.85

二.操作

A数据库操作

1.开启binlog

vim /etc/my.cnf

[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;


+------------------+----------+--------------+------------------+
| 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;

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

[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;

*************************** 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;


+------------------+----------+--------------+------------------+
| 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;

*************************** 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即可

Mysql配置 主主同步的更多相关文章

  1. mysql配置为半同步复制

    mysql 半同步插件是由谷歌提供,具体位置/usr/local/mysql/lib/plugin/下,一个是 master用的 semisync_master.so,一个是 slave 用的 sem ...

  2. mysql配置完半同步复制之后报错[ERROR] The server quit without updating PID file

    修改配置,MySQL启动报:[ERROR] The server quit without updating PID file [root@localhost mysql]# /etc/init.d/ ...

  3. mysql 配置数据库主从同步

    参考:https://www.cnblogs.com/kevingrace/p/6256603.html http://www.51testing.com/html/00/130600-243651. ...

  4. mysql配置主从复制

    1.原理: MySQL之间数据复制的基础是二进制日志文件(binary log file).一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在 ...

  5. MySQL 主主同步配置和主从配置步骤

    ★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...

  6. Docker Mysql数据库双主同步配置方法

    一.背景 可先查看第一篇<Docker Mysql数据库主从同步配置方法>介绍 二.具体操作 1.创建目录(~/test/mysql_test1): --mysql --mone --da ...

  7. MySQL主主同步配置

    1. MySQL主主配置过程 在上一篇实现了主从同步的基础上,进行主主同步的配置. 这里用node19(主),node20(从)做修改,使得node19和node20变为主主同步配置模式 修改配置文件 ...

  8. Docker Mysql主主同步配置搭建Demo

    主主同步配置和主从配置很相似,仅需稍做修改就可以了,对主从配置有疑问可以查看 上一篇文章. 进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql ...

  9. MySql数据库主主同步配置步骤

    测试环境:  192.168.1.192  192.168.1.193    mysql5.2     配置192服务器:  /usr/local/mysql/bin/mysql -uroot -p ...

随机推荐

  1. php开发微信公众号(1)

    最近找了个方向提升自己的技术站,发现微信是一个不错的选择 1.入门 申请公众号这些都不说了,另外你必须需要php.h5.MySQL等基本知识才能看懂此文章,还需要有一个服务器及域名,由于我遇见问题也会 ...

  2. [atARC094D]Worst Case

    首先,容易证明满足条件的$ip_{i}$必然是一个前缀 将其看成一张二分图,$i$向满足$ip_{i}<xy$的$p_{i}$连边,即找到一个前缀满足其有完美匹配 二分枚举前缀长度$k$,根据h ...

  3. banner.txt

    Spring Boot Version: ${spring-boot.version} __----~~~~~~~~~~~------___ . . ~~//====...... __--~ ~~ - ...

  4. 面试官:Java 线程如何启动的?

    摘要:Java 的线程创建和启动非常简单,但如果问一个线程是怎么启动起来的往往并不清楚,甚至不知道为什么启动时是调用start(),而不是调用run()方法呢? 本文分享自华为云社区<Threa ...

  5. Codeforces 730L - Expression Queries(大模拟)

    Codeforces 题面传送门 & 洛谷题面传送门 大模拟(?)+阿巴细节题,模拟赛时刚了 3h 最后因为某个细节写挂 100->40/ll/ll(下次一定不能再挂分了啊 awa) 首 ...

  6. R语言与医学统计图形-【22】ggplot2统计变换函数

    ggplot2绘图系统--统计变换函数 在几何对象中以参数stat形式出现. 不同的几何对象对应不同的统计变换函数. 以直方图为例,几何对象geom_histogram(..., stat='bin' ...

  7. python19 操作mysql

    connect 模块下载 https://dev.mysql.com/downloads/connector/python/ import mysql.connector con = mysql.co ...

  8. confluence——实现

    基于CentOS6.9 [root@localhost ~]# yum install mysql mysql-server -y [root@localhost ~]#yum install -y ...

  9. 在R语言中使用Stringr进行字符串操作

    今天来学习下R中字符串处理操作,主要是stringr包中的字符串处理函数的用法. 先导入stringr包,library(stringr),require(stringr),或者stringr::函数 ...

  10. idea中如何找到重写

    Ctrl+O 为了避免写错重写类和快速重写.