如何在 Mysql8 中跳过名称解析并改用 IP?

如何在 Mysql8 中跳过名称解析并改用 IP?

我正在尝试禁用 DNS 名称解析,因为我有许多其他服务器连接到中央数据库。DNS 解析速度很慢,显然可以像这样禁用:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
port=3412
max_connections=500
skip-name-resolve

但是我仍然可以通过本地主机连接到它,这对我来说没有意义。

mysql -h localhost -u root -p -P 3412

我做了一些研究这里

如果您选择使用 skip-name-resolve,请确保您的 MYSQL 连接权限设置为允许 IP,而不是主机。

在大多数系统上,对于本地 MySQL 服务器,您需要使用 host=127.0.0.1(对于 ipv4)和 host=::1(对于 ipv6 网络),而不是传统的“host=localhost”。

为什么如果 DNS 解析被禁用,我仍然可以通过 localhost 连接?

答案1

MySQL 对连接进行了localhost特殊处理。在这种情况下,它通过 UNIX 域套接字而不是 TCP 进行连接,并且字符串localhost仍用于用户身份验证。

相关内容