После установки сервера 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. В остальных случаях следует включать резольвинг ДНС.