一、首先两台服务器安装好mysql数据库环境

参照linux rpm方式安装mysql5.1

https://www.cnblogs.com/sky-cheng/p/10564604.html

二、在两台mysql上都创建复制账号

mysql> grant replication slave,replication client on *.* to 'repl'@'%' identified by 'Zaq1xsw@';
Query OK, rows affected, warning (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| repl | % |
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
rows in set (0.00 sec)

三、两台mysql服务器上上分别设置不同的Server_id,同时都开启二进制日志

mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| server_id | 0 |
| server_id_bits | 32 |
+----------------+-------+

如果配置文件没有设置server_id参数,则默认都是0

编辑/etc/my.cnf

添加service_id,它的值可以跟服务器的IP最后一位数字一样,这样就能保证内网中的服务器ID不重复。一台设置

server_id=103
log-bin=master
binlog_format=row

另一台

server_id=
log-bin=master-
binlog_format=row

四、重启两台服务器的mysql服务

五、两台服务器分别执行change master操作

首先获取第一台数据库日志文件名称和偏移量:

mysql> show master status\G;
*************************** . row ***************************
File: master-1.000001
Position:
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
row in set (0.00 sec) ERROR:
No query specified

在另外一台上执行

mysql> change master
-> to
-> master_host='172.28.18.69',
-> master_port=,
-> master_user='repl',
-> master_password='xxxxxxxxx',
-> master_log_file='master-1.000001',
-> master_log_pos=;
Query OK, rows affected, warnings (0.20 sec)

开启这台上的主从复制

mysql> start slave;
Query OK, rows affected (0.01 sec)

查看从库状态

mysql> show slave status\G
*************************** . row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.28.18.69
Master_User: repl
Master_Port:
Connect_Retry:
Master_Log_File: master-1.000001
Read_Master_Log_Pos:
Relay_Log_File: node2-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: master-1.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:
Master_UUID: c76bbd08-7acd-11e9-badd-14feb5dc2c77
Master_Info_File: /home/mysql-5.7./data/master.info
SQL_Delay:
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count:
Master_Bind:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes从库同步线程启动成功,同样在另外一台服务器上也执行上述的操作,实际上主主配置就是互为主从配置。配置完后,在两台服务器上都可以查看主库和从库的状态 六、测试数据
在其中一台上插入数据,另外一台立即可以同步数据,表示配置成功。
首先在两台服务器上分别执行查询,看看表里数据是否一致
mysql> select * from test;
+------+------+
| id | name |
+------+------+
| | aaaa |
| | bbbb |
| | ccc |
+------+------+
rows in set (0.00 sec)
mysql> select * from test;
+------+------+
| id | name |
+------+------+
| | aaaa |
| | bbbb |
| | ccc |
+------+------+

两台服务器数据一致,在其中一台插入数据

mysql> insert into test values(,'dddd');
Query OK, row affected (0.03 sec) mysql> select * from test;
+------+------+
| id | name |
+------+------+
| | aaaa |
| | bbbb |
| | ccc |
| | dddd |
+------+------+
rows in set (0.00 sec)

另外一台查询

mysql> select * from test;
+------+------+
| id | name |
+------+------+
| | aaaa |
| | bbbb |
| | ccc |
| | dddd |
+------+------+
rows in set (0.00 sec)

插入的数据已经同步了

再在这台服务器上插入数据

mysql> insert into test values(,'eeee');
Query OK, row affected (0.02 sec) mysql> select * form test
-> ;
ERROR (): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'form test' at line
mysql> select * from test;
+------+------+
| id | name |
+------+------+
| | aaaa |
| | bbbb |
| | ccc |
| | dddd |
| | eeee |
+------+------+
rows in set (0.00 sec)

在另外一台查询

mysql> select * from test;
+------+------+
| id | name |
+------+------+
| | aaaa |
| | bbbb |
| | ccc |
| | dddd |
| | eeee |
+------+------+
rows in set (0.00 sec)

数据同步了,至此mysql主主配置成功。

												

mysql5.7.26做主主配置的更多相关文章

  1. mysql5.7.26做主从复制配置

    一.首先两台服务器安装好mysql数据库环境 参照linux rpm方式安装mysql5.1 https://www.cnblogs.com/sky-cheng/p/10564604.html 二.主 ...

  2. MySQL5.7.26二进制安装

    1.安装系统版本 2.解压更换路径 tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.26-linux-glibc2.12- ...

  3. MySQL双主配置

    MySQL双主配置 准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装.主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.1 ...

  4. 利用JDBC连接Eclipse和mySQL5.1.26数据库

    初学JDBC,看了看书,自己动手的时候还是有很多地方有问题,最终终于解决了实现了数据库的连接.现将整个步骤描述如下: 环境:mySQL5.1.26(win 32bit), Eclipse JavaEE ...

  5. linux 安装 mysql-5.6.26

    linux安装mysql-5.6.26 查看工具:winscp 下载地址 http://mirrors.sohu.com/mysql/MySQL-5.6/ 文件: mysql-5.6.26-linux ...

  6. Ubuntu14.04编译安装mysql5.6.26

    Ubuntu14.04编译安装mysql5.6.26 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libncurses5-d ...

  7. CentOS 6.5 源码安装MySQL5.6.26

    1:下载安装cmake (mysql5.5以后是通过cmake来编译的) 2:创建mysql的安装目录及数据库存放目录 #mkdir /usr/mysql                 //安装my ...

  8. MySQL Replication, 主从和双主配置

    MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...

  9. keepalived主从及双主配置

    高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候, ...

随机推荐

  1. StringUtils.isBlank()检验String 类型的变量是否为空

    在校验一个String类型的变量是否为空时,通常存在3中情况 是否为 null 是否为 "" 是否为空字符串(引号中间有空格)  如: "     ". Str ...

  2. 为什么重写了equals(),还要重写hashCode()?

    解决这个问题得先明白:hashCode 方法用于散列集合的查找,equals 方法用于判断两个对象是否相等. 第一步:具体背景(没有背景的讨论就是在耍流氓) 以HashMap中put方法为背景 第二步 ...

  3. Docker-----deepin系统下docker安装registry

    环境说明 一个坑逼的环境,也不能说坑逼,国产化的需求嘛. root@node22:/registry# uname -a Linux node22 4.4.15-deepin-aere #137 SM ...

  4. Android之View的绘制流程

    本篇文章会从源码(基于Android 6.0)角度分析Android中View的绘制流程,侧重于对整体流程的分析,对一些难以理解的点加以重点阐述,目的是把View绘制的整个流程把握好,而对于特定实现细 ...

  5. C++面向对象实践

    实践如下: class Person{ private: int age; ]; int hight; public: Person(int age, int hight, char* name); ...

  6. android studio中方法和类被调用多次,但是AS显示灰色,解决办法

    Android Studio里面的一些类及方法,明明有被其他的类或者方法调用,但是去看的时候显示灰色,鼠标放上面的时候显示:Class ‘XXX’ is never used或者Method ‘XXX ...

  7. Linux-Ubuntu文件权限

    文件权限 文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作. Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限 ...

  8. ntp同步报错解决

    服务端:192.168.1.204 主机名: www.test.com 客户端:192.168.1.206 主机名: www.test3.com 客户端同步服务端报错如下: [root@www etc ...

  9. 【HTML5】---【HTML5提供的一些新的标签用法以及和HTML 4的区别】

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p ...

  10. java:struts框架5(Converter,Validation,Tags(Object-Graph Navigation Language))

    1.Converter: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTY ...