作为我工作的一部分,我管理一个由 3 台 Ubuntu 14.04 机器组成的 mySQL 集群。所有 3 台机器都应该相同。
在机器 1 和 2 上,当我运行 时sudo service mysql status
,我会收到一份包含正常运行时间等的状态报告,相当于运行/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf version
。此行为与 /etc/init.d/mysql 文件一致,该文件包含以下条目:
'status')
if mysqld_status check_alive nowarn; then
log_action_msg "$($MYADMIN version)"
else
log_action_msg "MySQL (Percona Server) is stopped."
exit 3
fi
;;
($MYADMIN 变量解析为之前我发布的那个命令)。
然而,3 号机器的行为并非如此。运行 后sudo service mysql status
,我得到了标准的 Ubuntu 状态响应mysql start/running, process 2234
。
机器 3 上的 /etc/init.d/mysql 文件与机器 1 和 2 上的文件相同(使用 vimdiff 检查)。如果我mysqladmin
手动运行该命令,它会返回预期的输出。
发生了什么事?有什么可以覆盖 init.d 中的脚本吗?
尽管集群似乎按预期工作,但我不喜欢计算机的不一致性......让我感觉好像发生了一些我不知道的事情。
在此先感谢您提供的任何帮助。
答案1
后者看起来像是从 systemd/upstart 启动的守护进程,没有 SysV 兼容层(init.d 脚本;init.d 脚本实际上已被弃用)。尝试检查 /etc/init/mysql* 文件。