我正在 Fedora 16 系统上设置 mysql 从属设备,但设置server_id
不正确。我的/etc/my.cnf
是:
[mysqld]
server-id=16
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
read-only = 1
symbolic-links=0
max_allowed_packet = 100000000
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
但是,后面的systemctl restart mysqld.service
,show variables like "server_id"
表示server_id
是0
,这会导致复制失败。
/var/log/mysqld.log
上次修改是在我上次重新启动服务器时,但是从那时起就没有日志条目了(我今天重新启动了,最后一个条目是昨天的)。
为什么不起作用server-id=16
?是否需要在其他文件中设置?或者,有没有办法编辑systemd
单元文件,以便mysqld
从命令行选项启动--server-id=
,或者mysqld
运行 SQL 语句来设置server_id
启动时的值?
答案1
使用检查selinux上下文,它们可能是错误的
对于mysqld
启动、关闭消息,除了 之外/var/log/mysqld.log
,还检查/var/log/messages
。
如果消息(警告/错误)显示sealert
建议,请检查 mysqld selinux 上下文,它们可能是错误的或过时的。相应更新可能会解决该问题。
--server-id=
要在 mysqld 启动脚本中使用,请检查以下位置
/etc/sysconfig/
也许有一个mysqld
文件可以自定义启动选项。
/etc/rc.d/init.d/
mysqld
启动脚本驻留在此处。您可以在脚本中对该选项进行硬编码。但每次升级时您都必须应用更改。
PS:您可能需要考虑将从机操作系统切换到 debian/ubuntu,这样系统知识将适用于两台机器。此外,(恕我直言)Fedora 对于生产/服务器来说并不是一个好的选择,因为发行版的生命周期很短(6 个月的保质期 + 6 个月的更新支持)。如果首选 RedHat 相关操作系统,请使用 RedHat 或 CentOS。