【问题标题】:Couldnt connect to mysql using hostname无法使用主机名连接到 mysql
【发布时间】: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 端口,是否可以从其他主机访问。

标签: mysql ubuntu


【解决方案1】:

问题出在防火墙中。我之前检查了iptables,但是ufw是启用的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 2017-04-20
    相关资源
    最近更新 更多