MySQL主从同步中的server-id示例详解

在MySQL主从同步中,每一个实例都需要有一个独一无二的server-id。server-id是MySQL实例在进行主从同步时,使用的一个重要标识,用于识别不同的MySQL实例,避免数据在传输过程中混淆。

下面是关于MySQL主从同步中的server-id的详细攻略:

什么是server-id

server-id是MySQL主从同步中扮演重要角色的标识。每一个MySQL实例都应该具备一个唯一的server-id值,该值可以是任意整数。在MySQL主从同步中,主服务器使用server-id来标识自己,从服务器使用server-id来表示自己的身份,并根据server-id识别和区分其他从服务器。在主从同步中,server-id的值必须满足以下两个条件:

  1. 每个MySQL实例的server-id值必须唯一。
  2. 主服务器与从服务器的server-id不能相同。

如何设置server-id

可以使用以下两种方法来设置MySQL实例的server-id:

方法一:通过my.cnf文件设置server-id

在MySQL配置文件my.cnf中设置server-id的值,示例如下:

[mysqld]
server-id = 1    # 此处的1为server-id的值,可以自行修改

修改完my.cnf配置文件后,需要重新启动MySQL实例,此时新的server-id值才会生效。

方法二:通过SQL命令设置server-id

可以在MySQL实例中通过以下SQL命令来设置server-id:

SET GLOBAL server_id = 1;   # 此处的1为server-id的值,可以自行修改

注意:这种方法在MySQL实例重启后会失效,需要重新设置。

server-id示例说明:基本设置

以下是一个简单的MySQL实例的server-id设置示例:

  1. 主服务器的server-id设为1,从服务器的server-id分别设为2和3,示例设置方法如下:
# 主服务器设置
[mysqld]
server-id = 1

# 从服务器1
[mysqld]
server-id = 2

# 从服务器2
[mysqld]
server-id = 3
  1. 主从同步配置文件中配置复制帐号和权限,并启用主从同步。主从同步配置文件示例如下:

主服务器上的配置文件:

[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_do_db = testdb
binlog-ignore-db=mysql

从服务器上的配置文件:

[mysqld]
server-id = 2
relay-log = relay-bin
log_bin = mysql-bin
binlog_do_db = testdb
binlog-ignore-db=mysql

[mysqldump]
quick

在配置好主从同步后,从服务器成功连接到主服务器,且同步数据正常。

server-id示例说明:多主多从设置

以下是一个多主多从的MySQL实例的server-id设置示例:

  1. 主服务器A的server-id设为1,主服务器B的server-id设为2,从服务器C的server-id设为3,从服务器D的server-id设为4,整体配置文件设置如下:
# 主服务器A
[mysqld]
server-id = 1
datadir = D:/mysqlA/data
log-bin = mysql-bin
binlog-do-db = testdb
binlog-ignore-db = mysql

# 主服务器B
[mysqld]
server-id = 2
datadir = D:/mysqlB/data
log-bin = mysql-bin
binlog-do-db = testdb
binlog-ignore-db = mysql

# 从服务器C
[mysqld]
server-id = 3
datadir = D:/mysqlC/data
log-bin = mysql-bin
binlog-do-db = testdb
replicate-do-db = testdb
replicate-ignore-db = mysql

# 从服务器D
[mysqld]
server-id = 4
datadir = D:/mysqlD/data
log-bin = mysql-bin
binlog-do-db = testdb
replicate-do-db = testdb
replicate-ignore-db = mysql
  1. 配置多主同步。在每个主服务器上都配置主从同步,并设置复制用户和权限,示例如下:

主服务器A配置:

[mysqld]
server-id = 1
datadir = D:/mysqlA/data
log-bin = mysql-bin
binlog-do-db = testdb
binlog-ignore-db = mysql

# replicate
log-slave-updates=on
relay-log=mysql-relay-bin
relay-log-index=mysql-relay-bin.index
relay-log-info-file=mysql-relay-bin.info

# replication user
master-host=<ip-of-the-masterB>
master-log-file=mysql-bin.000001
master-user=replication
master-password=123456

主服务器B配置:

[mysqld]
server-id = 2
datadir = D:/mysqlB/data
log-bin = mysql-bin
binlog-do-db = testdb
binlog-ignore-db = mysql

# replicate
log-slave-updates=on
relay-log=mysql-relay-bin
relay-log-index=mysql-relay-bin.index
relay-log-info-file=mysql-relay-bin.info

# replication user
master-host=<ip-of-the-masterA>
master-log-file=mysql-bin.000001
master-user=replication
master-password=123456
  1. 配置从服务器C和从服务器D的主从同步,示例如下:

从服务器C配置:

[mysqld]
server-id = 3
datadir = D:/mysqlC/data
log-bin = mysql-bin
binlog-do-db = testdb
replicate-do-db = testdb
replicate-ignore-db = mysql

# replicate
log-slave-updates=on
relay-log=mysql-relay-bin
relay-log-index=mysql-relay-bin.index
relay-log-info-file=mysql-relay-bin.info

# replication user
master-host=<ip-of-the-masterA>
master-log-file=mysql-bin.000001
master-user=replication
master-password=123456

从服务器D配置:

[mysqld]
server-id = 4
datadir = D:/mysqlD/data
log-bin = mysql-bin
binlog-do-db = testdb
replicate-do-db = testdb
replicate-ignore-db = mysql

# replicate
log-slave-updates=on
relay-log=mysql-relay-bin
relay-log-index=mysql-relay-bin.index
relay-log-info-file=mysql-relay-bin.info

# replication user
master-host=<ip-of-the-masterA>
master-log-file=mysql-bin.000001
master-user=replication
master-password=123456

在多主多从设置完毕后,可以进行数据同步测试,验证复制是否正确。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL主从同步中的server-id示例详解 - Python技术站

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

相关文章

  • .net中webconfig 详解

    下面是”.net中webconfig 详解”的完整攻略。 一、什么是Web.config Web.config是一个XML格式的文件,它存储着一个Web应用程序中的配置信息,如数据库连接字符串、身份验证方式、Session状态管理等等。 Web.config配置信息可以修改,可以在运行时动态修改,这样就不用重新编译整个应用程序,使得应用程序的管理更加方便。 …

    database 2023年5月21日
    00
  • Linux、Windows下Redis的安装即Redis的基本使用详解

    Linux下Redis的安装及基本使用 安装 下载安装包 可以从官网上下载安装包,也可以使用命令wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解压安装包 使用命令tar -xzvf redis-5.0.5.tar.gz 编译安装 切换到解压后的文件夹,使用命令make &&…

    database 2023年5月22日
    00
  • Node.js数据库操作之连接MySQL数据库(一)

    下面是“Node.js数据库操作之连接MySQL数据库(一)”的完整攻略: 连接MySQL数据库 安装MySQL 首先需要下载并安装MySQL,可以从官网或镜像站点中下载。安装完成后,需要设置root用户的密码。 安装mysql模块 接下来需要安装npm的mysql模块,可以使用npm命令进行安装: $ npm install mysql 连接MySQL c…

    database 2023年5月18日
    00
  • mysql,获取当天0点0分的日期和23点59分59秒的日期

    当前日期23:59:59 SQL:SELECT DATE_SUB( DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY),INTERVAL 1 SECOND) 如图:   当前日期往前推14天00:00:00零点零分的时间 sql:SELECT DATE_SUB(DATE_FORMAT(CURDATE(),’%Y-%m-%d %H:%…

    MySQL 2023年4月13日
    00
  • Mysql表的操作方法详细介绍

    我来为您详细讲解 Mysql 表的操作方法。下面将包含创建、修改、删除表格等操作。 创建表格 要创建一个表格,您需要使用 CREATE TABLE 语句。以下是创建表格的基本语法: CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, …. ); 其…

    database 2023年5月22日
    00
  • oracle获取当前时间,精确到毫秒并指定精确位数的实现方法

    获取当前时间,精确到毫秒,并指定精度位数,可以通过TO_CHAR函数实现。下面是具体的步骤及示例说明。 使用SYSTIMESTAMP获取当前系统时间戳。 SELECT SYSTIMESTAMP FROM dual; 该语句会返回当前系统时间戳,比如以下示例输出的系统时间戳为: 09-NOV-21 04.50.15.379707 PM +00:00。 使用TO…

    database 2023年5月22日
    00
  • pagehelper分页工具类的封装

    PageHelper是一个开源的Mybatis分页插件,可以自动进行分页查询操作,使用简便,功能强大。在实际项目中,经常需要对数据库中的数据进行分页展示和查询,PageHelper可以帮助我们轻松实现这一操作。 以下是PageHelper分页工具类的封装的完整攻略: 1. 引入PageHelper依赖 在Maven的pom.xml文件中添加以下依赖,引入Pa…

    database 2023年5月21日
    00
  • sqlserver中Case的使用方法(上下篇)

    下面是关于 “SQL Server中CASE的使用方法” 的完整攻略。 一、概述 在 SQL Server 中,CASE 表达式是一个非常重要且常用的逻辑表达式,可以用于在 SQL 查询中根据条件进行数据的筛选和分组等操作。本文将介绍 CASE 的使用方法及示例,分上下篇介绍。 二、语法 CASE 表达式语法如下: CASE WHEN condition1 …

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部