【发布时间】:2022-01-19 07:00:30
【问题描述】:
我的服务器在 Ubuntu 20.04 和 mysql 5.7.36 上运行。我有一个奇怪的问题,我无法使用主机名连接到此服务器上的 mysql,例如当我使用命令时:mysql -u user -h hostname.example -p
我有错误:
错误 2003 (HY000):无法连接到“hostname.example”上的 MySQL 服务器 (110)
当我尝试mysql -u user -h localhost -p - 一切都很好。但是当我使用mysql -u user -h 127.0.0.1 -p 时,我遇到了与上述相同的错误。
另外,当我尝试从另一台服务器(使用主机名)连接到 mysql 服务器时,一切正常。
在我的 mysql.conf 中有一行 skip-name-resolve
添加我的 resolv.conf(因为我认为我的 DNS 有问题)
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.53
【问题讨论】:
-
在我的 mysql.conf 中有一行 skip-name-resolve - 因此您不能使用助记名称(包括在 resolv.conf 中指定的名称),只能使用 IP 地址。排除是
localhost,它是没有DNS 的特殊名称。 -
当我使用
mysql -u user -h 127.0.0.1 -p时,我遇到了与上述相同的错误。 看起来网络访问被禁用,并且只允许套接字连接。检查skip_networking的设置是否存在。 -
@akina 我试图评论“skip-name-resolve”并重新启动mysql - 它没有帮助:(。我还检查了
skip_networing,我的配置文件中没有这样的行。 P.s. 感谢您的帮助 -
我的配置文件中没有这样的行 检查所有可能加载的配置文件。还要检查守护程序命令行以获取相应的选项。还要检查服务器是否正在侦听某些 TCP 端口,是否可以从其他主机访问。