我正在尝试在服务器上添加一个 mysql 服务器作为 drbd 资源,我已经按照本教程
进行了更多操作,我在主服务器上完成了以下 sql,
grant all on mysql.user TO ‘crm’@’%’ IDENTIFIED BY ‘password’;
grant all on mysql.user TO ‘crm’@’localhost’ IDENTIFIED BY ‘password’;
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP' IDENTIFIED BY 'password';
其中密码是实际密码,ip 是我也禁用的另一个节点的 ip mysql服务器的apparmor,我已经覆盖了mysql服务器自动启动的任何方式,我还尝试通过在第二个节点echo "manual" >> /etc/init/mysql.override
上将mysql文件夹的权限放在drbd挂载权上。chmod 777 /service/mysql
我还移动了套接字并将 mysql 资源更改为 ocf 资源,并在 crm 配置中定义了新的套接字目录。
现在我可以登录到第一个节点上的数据库,但是当发生故障转移时,我无法登录到第二个节点上的数据库,而是收到#2002 - No such file or directory<br />The server is not responding (or the local server's socket is not correctly configured).
错误消息,当尝试通过 cli 登录时,我在第一个服务器上也收到此错误
我觉得有趣和奇怪的是,在节点上我可以登录数据库 systemctl status mysql
返回
未运行,而在节点上我无法登录数据库相同的命令返回运行
显然这是因为 mysql 服务器应该由 heartbeat/pacemaker/corosync 启动,因此它根本不应该报告它正在运行
显然这是因为在故障转移后它不被认为是“本地主机”,所以当这个检查发生时
它试图通过 tcp 连接,这是通过将“tcp”替换为“socket”来解决的