在MySQL中设置`server-id`变量不起作用

Rag*_*agZ 4 mysql database-replication

我一直在尝试设置两个数据库作为主服务器和从服务器.

我按照这里着名的指南:https: //dev.mysql.com/doc/refman/5.1/en/replication-howto-existingdata.html

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

我试着像这样定义它:

[mysqld]
server-id = 2
Run Code Online (Sandbox Code Playgroud)

我也尝试使用SET GLOBAL server_id来设置它,但很明显,它没有保存设置.

当我做:

SHOW VARIABLES LIKE 'server_id'
Run Code Online (Sandbox Code Playgroud)

它回来了

server_id 0
Run Code Online (Sandbox Code Playgroud)

在我看过的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
Run Code Online (Sandbox Code Playgroud)

我的MySQL服务器在Ubuntu上运行.如果重要,我可以通过输入以下内容开始:

service mysql start
Run Code Online (Sandbox Code Playgroud)

我很想知道我还能在哪里解决这个问题.谢谢你!

补充说明:

MySQL忽略全局conf文件

我收到了这个警告几次,当我将chmod返回到etc/mysql文件夹中的644时,它就消失了,尽管上面说的所有内容都是使用644和777权限尝试的,644警告消失了.

Gro*_*oco 6

我知道这是迟到的,但对于那些犯错误的人来说.它是server_id而不是server-id:

[mysqld]
server_id = 2
Run Code Online (Sandbox Code Playgroud)

  • 它并不总是“server_id”。有时是“server-id”,有时是“server_id”。不确定它到底取决于什么。这个答案可能会误导某些人。 (3认同)