我尝试远程连接到 MySQL 数据库大约 10 个小时,但没有成功。
服务器运行的是 Debian。
已my.cnf
正确配置bind-ip 0.0.0.0
且没有跳过网络。
lsof -i :3306
显示从连接 IP 到服务器的已建立连接,但随后消失。
当在服务器上使用 tcpdump 端口 3306 和“(tcp-syn|tcp-ack)!=0”时,我在尝试连接到它时收到以下信息:
10:55:44.195273 IP server2.xxx.xxx.mysql > xxx.xxx.12.89.53920:标志 [R],seq 1740903883,win 0,长度 0
连接的用户被授予所有访问权限%
。
我不知道还要做什么。服务器正在运行ISPConfig
防火墙bastille
,但即使关闭它也不起作用。我能够连接到本地数据库和 LAN 地址。
这是我尝试连接到数据库服务器时得到的结果:
“错误 2013 (HY000):在‘读取授权数据包’时失去与 MySQL 服务器的连接,系统错误:2“没有这样的文件或目录”
我的cnf
Skip_name_resolve 已开启
绑定地址已注释
有什么线索吗?
答案1
TCP 网络显然正在工作:您获得了一个连接,并且替代连接工具(例如)nc
也演示了这一点。
它要么是 MySQL 本身阻止传入连接,要么是您的版本已使用 TCP Wrappers 进行编译,并且设置为需要反向 DNS,甚至可能需要前向/反向匹配。
MySQL 文档B.5.2.5 主机“host_name”被阻止解释说,太多不完整的连接将导致原始 IP 地址被阻止,直到mysqladm flush-hosts
运行为止。或者您可以登录并执行FLUSH HOSTS
。
要检查 TCP 包装器配置,您需要查看/etc.hosts.allow
和/etc/hosts.deny
。