一、首先两台服务器安装好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. C# CancellationTokenSource.Cancel 取消线程很鸡肋?

    例子: CancellationTokenSource cts ; void MainWindow_Loaded(object sender, RoutedEventArgs e) { Task.Ru ...

  2. leetcode 230二叉搜索树中第k小的元素

    通过stack进行中序遍历迭代,timeO(k),spaceO(1) /** * Definition for a binary tree node. * struct TreeNode { * in ...

  3. electron创建窗口常用配置参数

    { "width": 800,//指定窗口的宽度,单位: 像素值. 默认是 800 "height":600,//指定窗口的高度,单位: 像素值,. 默认是 6 ...

  4. sklearn.feature_extraction.DictVectorizer

    sklearn.feature_extraction.DictVectorizer:将字典组成的列表转换成向量.(将特征与值的映射字典组成的列表转换成向量) 1. 特征矩阵行代表数据,列代表特征,0表 ...

  5. oracle数据库面试相关

    1.实现分页 rownum: select * from (select aa.* rownum rn from (select * from student )aa where rownum < ...

  6. 十一:jinja2模板传参

    从后台传参到模板,模板再渲染到前端 传参的时候,可以在html后面加上关键字传参,在模板里面用{{ 参数 }}使用即可,可以传多个参数 也可以使用**传参,取值的时候就直接取内容

  7. 域名查询是否注册的demo

    import json import multiprocessing import threading import requests import xmltodict # 万网查询 def chec ...

  8. 本地虚拟机部署线上php程序---不需要修改数据库信息

    1.特别注意:拿来线上php程序后一般是不需要修改config.php里面的数据库连接信息的,如果修改了会报错:站点已关闭.所以 2.5 步骤是需要省略的.如果拿来的是最开始的php源码,需要配置原始 ...

  9. oracle 在sql中显示blob的字符串

    最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了. blob字段直接用 select * from table_name ...

  10. python学习之数据类型(List)

    3.5 列表 3.5.1 列表的介绍 ​ 列表是python的基础数据类型之⼀,其他编程语言也有类似的数据类型. 比如JS中的数组, java中的数组等等.它是以[ ]括起来, 每个元素⽤' , '隔 ...