Ошибка MySQL: [Warning] user entry root@

Автор: | 20.05.2022

После установки сервера mysql в логе daemon.log появляется такая ошибка:

Jul 24 15:29:08 srv mysqld: 140724 15:29:08 [Warning] ‘user’ entry ‘root@example.com’ ignored in —skip-name-resolve mode. Jul 24 15:29:08 srv mysqld: 140724 15:29:08 [Warning] ‘proxies_priv’ entry ‘@ root@example.com’ ignored in —skip-name-resolve mode.

Всему виной отключённый DNS резольвинг: определение доменного имени для ip-адресов подключённых к mysql серверу клиентов. Мне на сервере эта функция не нужна, поэтому отключена параметром skip-name-resolve в файле my.cnf.

Исправляется возникающая ошибка подобным образом. Подключаемся к mysql серверу и выбираем базу mysql.

mysql> use mysql;

Затем выбираем таблицу user.

mysql> select Host, User from user;

Отобразится результат, в котором будут видны пользователи и хосты, для которых доступна авторизация этих пользователей.

+———————+——————+ | Host | User | +———————+——————+ | 127.0.0.1 | root | | ::1 | root | | example.com | root | +———————+——————+ 13 rows in set (0.00 sec)

Затем выбираем следующую таблицу — proxies_priv.

mysql> select Host, User from proxies_priv;

Её содержимое будет примерно таким:

+———————+——+ | Host | User | +———————+——+ | localhost | root | | example.com | root | +———————+——+ 2 rows in set (0.00 sec)

Как видим, здесь есть «лишний» root с доступом для домена example.com. Также может быть указано и просто имя хоста, например, root@example. Именно этот пользователь вызывает ошибку. Удаляем его:

mysql> deluser ‘root’@’example.com’;

В довершение обновляем привилегии.

mysql> flush privileges;

Повторю, что этот способ подходит только если вам не нужны внешние подключения к серверу mysql от имени root. В остальных случаях следует включать резольвинг ДНС.



Добавить комментарий

Ваш адрес email не будет опубликован.