又一个“无法通过网络连接到 MySQL”的问题 - 但我已经认真尝试了所有方法

又一个“无法通过网络连接到 MySQL”的问题 - 但我已经认真尝试了所有方法

我剩下的简单任务就是安装 moodle。

我通过 VPN 连接到 2 个服务器,一个用于数据库,另一个用于 apache/php

服务器 1 必须通过 LAN 连接到服务器 2 上的 mySQL 数据库

  1. 我添加了一个具有以下权限的用户:+---------------+------------+ | host | user | +---------------+------------+ | % | mir | | 10.10.40.15 | mir | | xxxx | mir |
    | localhost | mir |

  2. 暂时禁用防火墙

  3. 确保我的用户名/密码组合正确,刷新权限,重新启动 mysqld

  4. 我想要 /etc/my.cnf ..如果我尝试添加 port=3306 bind-address=10.10.40.15 或任何不同于 0.0.0.0 或 127.0.0.1 的内容 -mysql 无法重启

  5. 我阅读并尝试了许多论坛和页面,并向朋友寻求建议,但都不起作用

我的问题是:

  • mysql 是否需要安装任何网络扩展,如何知道安装中没有缺少任何内容
  • 任何故障排除技巧,任何关于如何修复此问题的想法,任何一步一步的检查清单,我是否遗漏了一些简单/愚蠢的东西,请让我知道任何想到的东西

感谢您对这个周五晚上工作中遇到的问题的反馈 :P

答案1

问题不是来自mysql方面,而是来自php / apache服务器,我所要做的就是“setsebool -P httpd_can_network_connect = 1

显然,请求的服务器连接出现了问题。

这让我浪费了比我应该浪费的更多的时间。所以我想我会留下评论来记录一个可能的解决方案

答案2

  1. 它正在监听任意端口吗?

netstat -nap | grep -i mysql

  1. 如果是的话——您的客户端是否有可见的流量?

tcpdump -i [interface_name] -tnn 主机 [client_ip] 和端口 [mysql_port_number]

  1. 如果有流量... 是否有任何回复?

tcpdump -i [接口名称] -tnn 主机 [客户端 IP]

答案3

遗憾的是,您没有描述连接中断的具体位置或任何错误消息。因此,我尝试在此列出我的一般故障排除步骤(如果这太过新手,请见谅):

  1. 确保您的 Web 服务器可以 ping 数据库服务器 - 如果有必要 - 确保防火墙允许这样做(稍后是 icmp 和 3306)
  2. 如果 1 可以,请确保 Web 服务器可以 telnet 到数据库服务器中的 mysql 端口。
  3. 如果 2 没问题,请确保您可以使用任何其他用户名/密码登录(从任何主机打开任何用户名/密码,或使用 root 用户名进行快速测试)

您坚持这 3 个中的哪一个?我们将更深入地探讨...

答案4

谢谢大家的反馈,目前我

mysql -u mir -h 10.10.40.15 -p 输入密码:错误 2003 (HY000):无法连接到‘10.10.40.15’上的 MySQL 服务器 (111)

但是当我

mysql -u mir -p 输入密码:欢迎使用 MySQL 监视器。命令以 ; 或 \g 结尾。您的 MySQL 连接 ID 是 2 服务器版本:5.0.77 源分发

当我

telnet> open 10.10.40.13 3306 正在尝试 10.10.40.13... 已连接到 10.10.40.13 (10.10.40.13)。转义字符为 '^]'。4 5.0.77dAWsZLLz,Aq;m6cn$`=NOConnection 由外部主机关闭。

至于 netstat,这是输出

netstat -nap | grep -i mysql tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 16698/mysqld
unix 2 [ACC] 流监听 264736 16698/mysqld /var/lib/mysql/mysql.sock

对于 tcp dump,捕获了 1403 个数据包,过滤器接收了 1404 个数据包,内核丢弃了 0 个数据包

我可以 ping 这两个地址

有任何想法吗?非常感谢您的反馈

相关内容