mysql-my.ini服务器ID变量不会更改

时间:2018-10-17 15:46:41

标签: mysql replication mysql-error-1064 database-replication

我想在mysql上设置复制。

我用以下内容替换了从站中my.ini文件的内容:

[mysqld]
log-bin = mysql-bin
server_id = 2
server-id = 2
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
replicate_do_db = replica

我不知道正确的“ server_id”或“ server-id”,所以我都写了它们。然后保存并重新启动mysql。然后我用命令检查: 显示类似“ server_id”的变量 然后显示输出:

+ --------------- + ------- +
| Variable_name | Value |
+ --------------- + ------- +
| server_id | 1 |
+ --------------- + ------- +

我很困惑,为什么结果为1?然后,我使用命令再次尝试: 显示类似“ server-id”的变量 然后显示输出: 空置(0.00秒)

问题是:

  1. 哪个是正确的:“ server_id”或“ server-id”? (因为我已经尝试过两个都不能)

  2. 为什么使用上述设置保存my.ini文件后,server_id变量保持不变?

注意: 我已经运行了“停止从站”命令->“启动从站”然后“重置主站”,但是结果保持不变。

1 个答案:

答案 0 :(得分:0)

server_id是正确的

  

主机和每个从机必须配置一个唯一的ID(使用   服务器ID选项)。此外,每个从站必须配置有   有关主主机名,日志文件名和位置的信息   在该文件中。

我假设您使用二进制日志选项进行复制

因此,请仔细阅读手册(https://dev.mysql.com/doc/refman/8.0/en/replication-howto.html) 您肯定需要:

  1. 对于主服务器-确保已启用二进制日志记录,并配置唯一的服务器ID
  2. 每个复制从属服务器必须具有唯一的服务器ID
  3. 为从站配置用于连接到主站的设置,例如主机名,登录凭据以及二进制日志文件名和位置(有关https://dev.mysql.com/doc/refman/8.0/en/replication-howto-slaveinit.html的更多详细信息)