Linux下指定mysql数据库数据配置主主同步的实例

针对这个问题,我会提供一个完整的攻略以指导Linux下如何实现MySQL数据库主主同步配置。步骤如下:

准备工作

  1. 确认MySQL版本一致性,要求两个MySQL实例的版本必须一致。
  2. 开启MySQL二进制日志,可以通过修改my.cnf配置文件,将以下参数加入到[mysqld]组中:log-bin=mysql-bin

步骤一:创建复制账户并授权

在两个MySQL实例中,分别创建出用于复制的账户,并授权该账户拥有复制权限,示例代码如下:

GRANT REPLICATION SLAVE ON *.* TO 'replicant'@'%' IDENTIFIED BY 'password';

步骤二:重启MySQL实例

完成上述操作后,需要重启MySQL实例。

步骤三:开启主库复制日志并获得坐标点

执行以下命令,开启主库的复制日志并获取坐标点,示例代码如下:

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

步骤四:在从库上配置主库信息

在从库上配置要连接的主库的信息,示例代码如下:

CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='replicant', MASTER_PASSWORD='password', MASTER_LOG_FILE='recorded_file_name', MASTER_LOG_POS=recorded_position;

步骤五:启动从库复制

在从库上启动复制进程,并检查复制状态是否正常:

START SLAVE;
SHOW SLAVE STATUS\G;

示例

以假设我们已经在两个MySQL实例中创建了名为test的数据库举例,这个数据库已有一张表t1

示例一

  1. 在主库上创建test.t1表:
CREATE TABLE test.t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
  1. t1表中插入一条数据:
INSERT INTO test.t1 VALUES (1);
  1. 在从库上查询t1表,结果如下:
mysql> SELECT * FROM test.t1;
+----+
| id |
+----+
|  1 |
+----+

可以看到,从库已经同步了主库上的数据。

示例二

  1. 在主库上向t1表中插入一条数据:
INSERT INTO test.t1 VALUES (2);
  1. 在从库上向t1表中插入一条数据:
INSERT INTO test.t1 VALUES (3);
  1. 在从库上再次查询t1表,结果如下:
mysql> SELECT * FROM test.t1;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+

可以看到,从库同步了主库上插入的id=2的数据,但由于在从库上也插入了一条id=3的数据,所有从库中存在两条id=3的数据。

注意:这种情况需要手动解决,可使用mysqlbinlog命令将主库的binlog文件导出,然后结合从库的binlog文件手动进行数据合并。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux下指定mysql数据库数据配置主主同步的实例 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 防护黑客必学招数 SQL注入拦截-MYIIS-VIF助你一臂之力

    防护黑客必学招数 SQL注入拦截-MYIIS-VIF助你一臂之力 什么是SQL注入 SQL注入是一种常见的网络攻击方式,它在用户输入数据的时候,利用恶意代码使得后台数据库执行其不应该执行的语句。当程序没有对用户输入的数据进行有效检查时,黑客利用该漏洞可获取系统管理员权限、窃取重要信息等。 防止SQL注入的必要性 当网站存在SQL注入漏洞,攻击者可以以管理员的…

    database 2023年5月21日
    00
  • Mysql 5.7.18安装方法及启动MySQL服务的过程详解

    Mysql 5.7.18安装方法及启动MySQL服务的过程详解 Mysql是一种流行的关系型数据库管理系统,本文将为大家介绍Mysql 5.7.18的安装方法及启动MySQL服务的过程,并提供两个示例说明。 安装Mysql 5.7.18 步骤一:下载Mysql 5.7.18 官网下载地址:https://dev.mysql.com/downloads/mys…

    database 2023年5月22日
    00
  • dm.jdbc.driver.DMException网络通信异常的解决过程

    下面是针对“dm.jdbc.driver.DMException网络通信异常的解决过程”的完整攻略: 1. 确认异常信息 当出现dm.jdbc.driver.DMException异常,首先需要确认异常信息,具体包括: 是否是网络通信异常; 异常抛出的具体原因; 异常的出现频率和时间等。 只有正确的确认异常信息,才能有针对性的解决问题。 2. 检查网络连接 …

    database 2023年5月19日
    00
  • Entity Framework使用Code First模式管理事务

    首先我们需要了解Entity Framework是什么。Entity Framework是由微软开发的一种ORM(对象关系映射)框架,它可以将关系型数据库中的数据映射到对象上,使我们能够以面向对象的方式操作数据库。其中,Code First是Entity Framework的一种模式,它允许我们先编写实体类,然后通过实体类来生成数据库表,在这个过程中,我们可…

    database 2023年5月22日
    00
  • Linux安装Oracle出现乱码怎么解决

    安装Oracle是中文乱码的解决方法 在Linux安装Oracle时,由于字符集或者 locale 语音环境没有设置好,中文会出现乱码。为了解决这个问题,可以按照以下步骤进行操作: 1.确认当前主机的语言和字符集,使用以下命令查看: locale 其中的LANG和LC_ALL环境变量表示当前的字符集和语言环境。 2.如果当前的语言和字符集不符合要求,可以使用…

    database 2023年5月22日
    00
  • com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections

      com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:921) at com.mysql.jdbc.MysqlIO.ch…

    MySQL 2023年4月13日
    00
  • c#之Redis队列

    摘要 这两天一直在考虑redis队列:一个生产者,多个消费者的情况,这里弄了一个demo进行测试。 一个例子 关于如何引用Redisclient 可以参考之前的这篇文章:c#之Redis实践list,hashtable 生产者一个线程,然后开启多个线程用来消费数据。 代码如下: using System; using System.Collections.G…

    Redis 2023年4月12日
    00
  • day01-Redis入门

    Redis入门 1.初始Redis 1.1认识NoSQL SQL(关系型数据库) NoSQL(非关系型数据库) 数据结构 结构化(Structured) 非结构化 数据关联 关联的(Relational) 无关联的 查询方式 SQL查询 非SQL 事务特性 ACID BASE 存储方式 磁盘 内存 扩展性 垂直 水平 使用场景 1.数据结构固定 2.相关业务…

    2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部