Mysql
如何在 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
但是我仍然可以通過 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
仍用於使用者身份驗證。