AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 9756
Accepted
tarnfeld
tarnfeld
Asked: 2011-12-28 01:22:10 +0800 CST2011-12-28 01:22:10 +0800 CST 2011-12-28 01:22:10 +0800 CST

Mysql认为Master和Slave具有相同的server-id

  • 772

我一直在建立master->slave_a->slave_b关系并且遇到了一些麻烦。我目前的master->slave_a复制工作正常。

两个从站中的每一个都具有完全相同的配置,除了主机名server-id设置。每当我尝试启动从属设备时,slave_b都会弹出以下错误:

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

我真的不明白,因为我所有的服务器 ID 都相距很远1->2626->2629(m->s->s)。

我将它们设置在我的/etc/mysql/conf.d/replication.cnf文件中 - 它似乎被包含在内,但我不知道如何检查 mysql 正在接收哪个服务器 ID。

在此先感谢 :) 汤姆。

mysql replication
  • 7 7 个回答
  • 37532 Views

7 个回答

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2011-12-28T08:57:56+08:002011-12-28T08:57:56+08:00

    Master 的 server_id 与它执行到完成的每个查询一起记录在其二进制日志中。要查看二进制日志中的那些 server_id 值,您可以针对任何二进制日志运行mysqlbinlog 。

    由于 Master -> Slave_A 工作正常,您可以执行以下操作来清理 Slave_A 和 Slave_B 之间的内容:

    在 Slave_A 上,在 mysql 中运行以下命令:

    mysql> STOP SLAVE;
    mysql> RESET MASTER;
    

    在 Slave_A 上,在 OS 中运行以下命令:

    $ echo "STOP SLAVE;" > /root/MyData.sql
    $ mysqldump -u... -p... --master-data=1 --routines --triggers --all-databases >> /root/MyData.sql
    $ echo "START SLAVE;" >> /root/MyData.sql
    $ mysql -hSlave_B -u... -p... -A < /root/MyData.sql
    

    在 Slave_A 上,在 mysql 中运行以下命令:

    mysql> START SLAVE;
    

    这将使 Slave_B 查看 server_id 的正确值,并重新建立 MySQL 复制。

    顺便说一句,您需要确保在 Slave_B 上禁用二进制日志记录,因为除非 Slave_B 将主站转到其他从站,否则从站没有必要。

    • 2
  2. Otto
    2017-02-20T04:11:21+08:002017-02-20T04:11:21+08:00

    在我的情况下(主从)我解决了删除这个文件

    C:\ProgramData\MySQL\MySQL Server 5.7\Data\auto.cnf
    

    然后重启 MySQL 服务,当 MySQL 服务启动时会生成一个新的 UUID

    • 2
  3. jaybrau
    2017-04-13T12:33:37+08:002017-04-13T12:33:37+08:00

    在 Linux 上充实 Chumillas 的解决方案如下所示。所有命令都在从属服务器上运行,无需重新加载数据库,无需重新启动主服务器,整个过程只需几秒钟:

    mysql> STOP SLAVE;
    
    $ sudo service mysql stop
    
    $ sudo mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bak
    
    $ sudo service mysql start
    
    • 1
  4. Vaibhav Fouzdar
    2015-02-20T10:11:41+08:002015-02-20T10:11:41+08:00

    我在这个问题上苦苦挣扎了一段时间,主人显示错误

    在 my.ini 中使用不同的 IP 和不同的“服务器 ID”正确设置了主从


    Relay_Master_Log_File: log-bin.000001
    Slave_IO_Running: No
    Slave_SQL_Running: Yes
    Replicate_Do_DB:
    Replicate_Ignore_DB:
    Replicate_Do_Table:   
    .
    .
    .    
    Last_IO_Errno: 1593
    Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
    Last_SQL_Errno: 0
    

    问题:
    从属 SQL_Thread 也在主服务器上运行...(不确定如何:()

    修复:
    运行“停止奴隶;” 在大师

    POST ACTIONS
    通过验证从属状态(在 SLAVE 上)确保复制仍在工作

    就我而言,上面解决了这个问题,之后主从复制也可以正常工作。

    • 0
  5. Seadon Francis Pinto
    2017-12-15T21:02:17+08:002017-12-15T21:02:17+08:00

    我确实遇到了同样错误的类似问题。解决方案是在“CHANGE MASTER TO MASTER_HOST”查询中创建药膏时更正 PublicIP。

    当您在创建从站时使用与主站 IP 相同的从站 IP 时,会出现相同的错误。因此,MySql从服务器倾向于指向同一个服务器IP(从IP而不是主IP),形成相同服务器ID的冲突

    • 0
  6. lainatnavi
    2018-04-16T04:12:24+08:002018-04-16T04:12:24+08:00

    删除从 master 的 datadir 复制的 auto.cnf。重启mysqld。

    • 0
  7. Mark Steben
    2019-04-23T04:43:09+08:002019-04-23T04:43:09+08:00

    我也犯了同样的错误,但这是我的短视。我现在用作从服务器的服务器曾经是主服务器。因此,一旦我尝试启动从属服务器,show slave status 'master_host' 值默认为该服务器 i/p,而不是新的主服务器 i/p。所以我重新运行了“更改主机”命令,添加了指向新主机的“master_host”。呃!!也许这可能会帮助别人。

    • 0

相关问题

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve