Я пытаюсь отключить разрешение имен 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=127.0.0.1 для сетей ipv4 и host=::1 для сетей ipv6 вместо классического «host=localhost».
Почему я все равно могу подключиться через localhost, если разрешение DNS отключено?
решение1
MySQL обрабатывает подключение localhost
по-особому. В этом случае он подключается через сокет домена UNIX, а не через TCP, и строка localhost
по-прежнему используется для аутентификации пользователя.