mysql主主同步配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
1
2
                                                                         MySQL 主主同步配置 
服务器名    IP    系统    MySQL


主机名 地址 系统 MYSQL-SERVER
blog.sjf.com 11.1.0.200 CentOS-6.8 5.1.73-7
image.sjf.com 11.1.0.19 CentOS-6.8 5.1.73-7


一. 假设要同步的库是 test
1
2
3
4
5
6
7
8
9
我们这里先创建同步账号sjf
交叉授权
blog.sjf.com主机上
grant replication   slave on *.* to  'sjf' @ '11.1.0.204'   identified by  'sjf' ;
flush privileges;
 
image.sjf.com主机上
grant replication  slave on *.* to  'sjf' @ '11.1.0.203'    identified by  'sjf' ;
flush privileges;
二. 修改配置文件/etc/my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
blog上设置
[mysqld] 
innodb_file_per_table=ON
skip_name_resolve=ON
user = mysql
log-bin=mysql-bin
server- id  = 1
binlog- do -db= test
binlog-ignore-db=mysql
replicate- do -db= test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
image.sjf.com上的配置
[mysqld] 
innodb_file_per_table=ON
skip_name_resolve =ON
user = mysql
log-bin=mysql-bin
server- id  = 2
binlog- do -db= test
binlog-ignore-db=mysql
replicate- do -db= test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2
三、分别重启服务器blog image 两台主机上的mysql服务

       (1) 分别在服务器blog、image 上查看做为主服务器状态

1
2
3
4
5
6
7
8
9
10
11
blog:
 
MariaDB [(none)]> flush tables with  read  lock;
Query OK, 0 rows affected (0.00 sec)
MariaDB [ test ]> show master status\G; 
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 435
     Binlog_Do_DB:  test
Binlog_Ignore_DB: mysql
1 row  in  set  (0.00 sec)
1
2
3
4
5
6
7
8
9
10
11
image:
 
MariaDB [(none)]> flush tables with  read  lock;
Query OK, 0 rows affected (0.00 sec)
MariaDB [ test ]> show master status\G; 
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 340
     Binlog_Do_DB:  test
Binlog_Ignore_DB: mysql
1 row  in  set  (0.00 sec)

     (2)分别在服务器blog、image上用change master语句指定同步位置 :

1
2
3
blog
MariaDB [ test ]> change master to master_host= '11.1.0.19' , master_user= 'sjf' , master_password= 'sjf' ,master_log_file= 'mysql-bin.000001' ,master_log_pos=340;
Query OK, 0 rows affected (0.01 sec)
1
2
image
MariaDB [ test ]> change master to master_host= '11.1.0.200' , master_user= 'sjf' , master_password= 'sjf' ,master_log_file= 'mysql-bin.000001' ,master_log_pos=435;

        注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定 master_log_file对    应  File,master_log_pos对应Position


四、分别先取消读锁,启用从服务器模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
blog上:
 
MariaDB [ test ]>  start slave;
Query OK, 0 rows affected (0.01 sec)
MariaDB [ test ]> show slave status\G;
*************************** 1. row ***************************
                Slave_IO_State: Waiting  for  master to send event
                   Master_Host: 11.1.0.19
                   Master_User: sjf
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000001
           Read_Master_Log_Pos: 340
                Relay_Log_File: mariadb-relay-bin.000002
                 Relay_Log_Pos: 529
         Relay_Master_Log_File: mysql-bin.000001
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
               Replicate_Do_DB:  test
           Replicate_Ignore_DB: mysql
            Replicate_Do_Table: 
        Replicate_Ignore_Table: 
       Replicate_Wild_Do_Table: 
   Replicate_Wild_Ignore_Table: 
                    Last_Errno: 0
                    Last_Error: 
                  Skip_Counter: 0
           Exec_Master_Log_Pos: 340
               Relay_Log_Space: 825
               Until_Condition: None
                Until_Log_File: 
                 Until_Log_Pos: 0
            Master_SSL_Allowed: No
            Master_SSL_CA_File: 
            Master_SSL_CA_Path: 
               Master_SSL_Cert: 
             Master_SSL_Cipher: 
                Master_SSL_Key: 
         Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                 Last_IO_Errno: 0
                 Last_IO_Error: 
                Last_SQL_Errno: 0
                Last_SQL_Error: 
   Replicate_Ignore_Server_Ids: 
              Master_Server_Id: 2
1 row  in  set  (0.00 sec)
 
image上:
 
MariaDB [ test ]>  start slave;
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [ test ]> show slave status\G;
*************************** 1. row ***************************
                Slave_IO_State: Waiting  for  master to send event
                   Master_Host: 11.1.0.200
                   Master_User: sjf
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000001
           Read_Master_Log_Pos: 435
                Relay_Log_File: mariadb-relay-bin.000002
                 Relay_Log_Pos: 529
         Relay_Master_Log_File: mysql-bin.000001
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
               Replicate_Do_DB:  test
           Replicate_Ignore_DB: mysql
            Replicate_Do_Table: 
        Replicate_Ignore_Table: 
       Replicate_Wild_Do_Table: 
   Replicate_Wild_Ignore_Table: 
                    Last_Errno: 0
                    Last_Error: 
                  Skip_Counter: 0
           Exec_Master_Log_Pos: 435
               Relay_Log_Space: 825
               Until_Condition: None
                Until_Log_File: 
                 Until_Log_Pos: 0
            Master_SSL_Allowed: No
            Master_SSL_CA_File: 
            Master_SSL_CA_Path: 
               Master_SSL_Cert: 
             Master_SSL_Cipher: 
                Master_SSL_Key: 
         Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                 Last_IO_Errno: 0
                 Last_IO_Error: 
                Last_SQL_Errno: 0
                Last_SQL_Error: 
   Replicate_Ignore_Server_Ids: 
              Master_Server_Id: 1
1 row  in  set  (0.00 sec)


      主要关注以下 2 个参数:

...
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
...

五、测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
blog上:
 
MariaDB [ test ]> use  test ;
Database changed
MariaDB [ test ]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
| tb3            |
| tb4            |
+----------------+
3 rows  in  set  (0.00 sec)
MariaDB [ test ]> create table tb5( id  int);
Query OK, 0 rows affected (0.02 sec)
MariaDB [ test ]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
| tb3            |
| tb4            |
| tb5            |
+----------------+
 
images上:
 
MariaDB [(none)]> use  test ;
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
当blog生成表5后
MariaDB [ test ]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tb2            |
| tb5            |
+----------------+
2 rows  in  set  (0.00 sec)
我们这里创建表6,看下效果
MariaDB [ test ]> create table tb6( id  int);
Query OK, 0 rows affected (0.01 sec)
blog上。
MariaDB [ test ]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
| tb3            |
| tb5            |
| tb6            |
+----------------+
4 rows  in  set  (0.00 sec)

从上面的示例可以看出我们这个双主模型就这么成功了,这里的设定主服务器的那个配置是关键,记得每次打开服务两边都要start slave这样才能称为双主模型。当然双主模型也不是没有弊端,下次给大家介绍吧。


 本文转自 sjfbjs 51CTO博客,原文链接:http://blog.51cto.com/11886896/1873997
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
791 0
seatunnel配置mysql2hive
本文介绍了SeaTunnel的安装与使用教程,涵盖从安装、配置到数据同步的全过程。主要内容包括: 1. **SeaTunnel安装**:详细描述了下载、解压及配置连接器等步骤。 2. **模拟数据到Hive (fake2hive)**:通过编辑测试脚本,将模拟数据写入Hive表。 3. **MySQL到控制台 (mysql2console)**:创建配置文件并执行命令,将MySQL数据输出到控制台。 4. **MySQL到Hive (mysql2hive)**:创建Hive表,配置并启动同步任务,支持单表和多表同步。
80 15
MySQL原理简介—12.MySQL主从同步
本文介绍了四种为MySQL搭建主从复制架构的方法:异步复制、半同步复制、GTID复制和并行复制。异步复制通过配置主库和从库实现简单的主从架构,但存在数据丢失风险;半同步复制确保日志复制到从库后再提交事务,提高了数据安全性;GTID复制简化了配置过程,增强了复制的可靠性和管理性;并行复制通过多线程技术降低主从同步延迟,保证数据一致性。此外,还讨论了如何使用工具监控主从延迟及应对策略,如强制读主库以确保即时读取最新数据。
MySQL原理简介—12.MySQL主从同步
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
276 1
Flink CDC MySQL同步MySQL错误记录
在使用Flink CDC同步MySQL数据时,常见的错误包括连接错误、权限错误、表结构变化、数据类型不匹配、主键冲突和
224 17
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
399 2
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
254 0
Mysql中搭建主从复制原理和配置
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
182 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
Maxwell:binlog 解析器,轻松同步 MySQL 数据
Maxwell:binlog 解析器,轻松同步 MySQL 数据
573 11