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

ただし、localhost 経由で接続することはできますが、これは意味がありません。

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

私はいくつかの調査をしましたここ:

skip-name-resolve を使用する場合は、MYSQL 接続権限がホストではなく IP を許可するように設定されていることを確認してください。

ほとんどのシステムでは、ローカル MySQL サーバーの場合、従来の「host=localhost」の代わりに、ipv4 の場合は host=127.0.0.1、ipv6 ネットワークの場合は host=::1 を使用する必要があります。

DNS 解決が無効になっている場合でも、localhost 経由で接続できるのはなぜですか?

答え1

MySQL は接続をlocalhost特別に扱います。この場合、TCP ではなく UNIX ドメイン ソケット経由で接続し、文字列はlocalhost引き続きユーザー認証に使用されます。

関連情報