mysql drbd 错误 2002

mysql drbd 错误 2002

我正在尝试在关注的服务器上添加 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'; ,其中 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返回 没有运行在节点 i 上无法登录数据库相同的命令返回跑步

答案1

我发现一个有趣而又奇怪的现象:在节点上我可以登录数据库,但 systemctl status mysql 返回未运行;而在节点上我无法登录数据库,但相同的命令返回运行

显然这是因为 mysql 服务器应该由 heartbeat/pacemaker/corosync 启动,因此它根本不应该报告它正在运行

我能够登录到第一个节点上的数据库,但是当发生故障转移时,我无法登录到第二个节点上的数据库,而是收到错误#2002-没有这样的文件或目录,
服务器没有响应(或者本地服务器的套接字配置不正确)。

显然这是因为在故障转移后它不再被视为“本地主机”,因此当进行此检查时

if (empty($dbserver)) $dbserver = 'localhost';
    $cfg['Servers'][$i]['host'] = $dbserver;

    if (!empty($dbport) || $dbserver != 'localhost') {
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['port'] = $dbport;
    }

它试图通过 tcp 连接,这个问题通过将“tcp”替换为“socket”来解决

相关内容