【问题标题】:Setting `server-id` variable in MySQL doesn't work在 MySQL 中设置 `server-id` 变量不起作用
【发布时间】:2015-10-25 10:32:10
【问题描述】:

我一直在尝试将两个数据库设置为主数据库和从数据库。

我在这里遵循了著名的指南: https://dev.mysql.com/doc/refman/5.1/en/replication-howto-existingdata.html

但是在我的从属服务器上没有运气, 我遇到的问题是设置 server-id 变量。 无论我在哪里定义它(我查看了所有可能允许我定义变量的 cnf 文件)

我试图这样定义它:

[mysqld]
server-id = 2

我也尝试使用 SET GLOBAL server_id 设置它,但显然它没有保存设置。

当我这样做时:

SHOW VARIABLES LIKE 'server_id'

返回

server_id 0

我查看过的 cnf 文件有:

etc/mysql/mysql.conf.d/mysqld.cnf
etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf
etc/mysql/conf.d/mysql.cnf
etc/mysql/debian.cnf
etc/mysql/mysql.cnf
usr/my.cnf
usr/my-new.cnf
usr/etc/my.cnf

我的 MySQL 服务器在 Ubuntu 上运行。 如果它很重要,我会先输入:

service mysql start

我很想知道在哪里可以解决这个问题。 非常感谢!

补充说明:

MySQL 忽略全局 conf 文件

我收到了几次这个警告,当我在 etc/mysql 文件夹中将 chmod 返回到 644 时它消失了,尽管上面提到的每件事都是使用 644 和 777 权限尝试的,644 警告消失了。

【问题讨论】:

  • 对 linx 不太了解,但尝试重新启动而不是在命令行中启动
  • @Mihai 感谢您的回复,但我确实使用了重启和停止,只是由于某种原因,我的设置似乎被忽略了。

标签: mysql database-replication


【解决方案1】:

我知道为时已晚,但对于那些会犯错误的人来说。 它是 server_id 而不是 server-id

[mysqld]
server_id = 2

【讨论】:

  • 并不总是server_id。有时是server-id,有时是server_id。不确定它到底取决于什么。这个答案可能会误导某些人。
【解决方案2】:

对我来说,它通过将 /etc/mysql/conf.d/my.cnf 重命名为 /etc/mysql/conf.d/my.ini 来工作

我不确定确切的原因(请随时编辑此答案并添加到其中)。

我尝试了各种组合:

  1. 将变量保留为:server-idserver_id
  2. 将组/部分保留为:[mysql][mysqld]
  3. 将文件重命名为:my.cnfmysqld.cnfmysql.cnfmy.ini

您可以继续尝试上述选项中的各种组合,它肯定会起作用。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    相关资源
    最近更新 更多