Можливо, запобіжний захід. Ви можете спробувати додати новий обліковий запис адміністратора:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
Хоча, як зазначили Паскаль та інші, це не дуже гарна ідея, щоб користувач із таким видом доступу був відкритий до будь-якої IP. Якщо вам потрібен адміністративний користувач, використовуйте root та залиште його у localhost. Для будь-якої іншої дії вкажіть саме потрібні вам привілеї та обмежте доступність користувача, як запропонував Pascal нижче.
Редагувати:
З питань FAQ на MySQL:
Якщо ви не можете зрозуміти, чому вам заборонено доступ, видаліть із таблиці користувачів усі записи, у яких розміщені знаки хосту, що містять символи підстановки (записи, що містять символи '%' або '_'). Дуже поширена помилка - вставити новий запис із Host = '%' та User = 'some_user', думаючи, що це дозволяє вказати localhost для підключення з тієї ж машини. Причина, що це не працює, полягає в тому, що привілеї за замовчуванням включають запис із Host = 'localhost' та User = ''. Оскільки цей запис має значення хосту "localhost", яке є більш конкретним, ніж "%", воно використовується в перевазі нового запису при підключенні з localhost! Правильна процедура полягає в тому, щоб вставити другий запис з Host = 'localhost' і User = 'some_user', або видалити запис за допомогою Host = 'localhost' та User = ''. Вилучивши запис, не забудьте оформити операцію FLUSH PRIVILEGES для перезавантаження таблиць грантів. Див. Також розділ 5.4.4, «Контроль доступу, Етап 1: Перевірка підключення».