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