Mysql

如何在 Mysql8 中跳過名稱解析並改用 IP?

  • December 5, 2020

我正在嘗試禁用 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

但是我仍然可以通過 localhost 連接到它,這對我來說沒有意義。

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

我在這裡做了一些研究:

如果您選擇使用 skip-name-resolve,請確保您的 MYSQL 連接權限設置為允許 IP,而不是主機。

在大多數係統上,對於本地 MySQL 伺服器,您需要對 ipv4 使用 host=127.0.0.1,對 ipv6 網路使用 host=::1,而不是經典的“host=localhost”。

如果 DNS 解析被禁用,為什麼我仍然可以通過 localhost 連接?

MySQL 特別對待連接localhost。在這種情況下,它通過 UNIX 域套接字連接,而不是通過 TCP,並且該字元串localhost仍用於使用者身份驗證。

引用自:https://serverfault.com/questions/1045136