2009-11-01 11 views

ответ

1

Вы все еще могли бы быть в состоянии сделать UPDATE на столе user в базе данных mysql:

USE mysql; 
UPDATE user SET Grant_priv='1' WHERE User='root'; 
FLUSH PRIVILEGES; 

Если шаг 3 не работает, перезагрузите сервер MySQL будет иметь тот же эффект. Если шаг 2 не работает, вам необходимо восстановить mysql.user из резервной копии. Если у вас нет резервной копии, сделайте резервную копию, переустановите MySQL и затем выборочно восстановите резервную копию, оставив таблицы в базе данных mysql.

UPDATE

Вы получаете доступ запрещен во время первого этапа. На данный момент вы отказываетесь от альтернативных решений с резервными копиями. Нет никакого способа (который я знаю или могу легко представить), что вы восстанавливаете эти таблицы любым другим способом.

UPDATE 2

Точное сообщение об ошибке, в основном говорят, что в дополнение к потере grant привилегий суперпользователя, вы упали доступ суперпользователя к mysql БД. Не имея доступа к этой БД и не обладая grant привилегиями, единственный способ, который я могу увидеть, - как-то получить новую копию базы данных mysql.

У вас есть возможность установить репликацию?

+0

Доступ запрещен на первом этапе. – LogicWolfe

+0

В случае, если точное сообщение об ошибке в некотором роде более полезно: ERROR 1044 (42000): доступ запрещен для пользователя 'root' @ 'localhost' в базу данных 'mysql' – LogicWolfe

+0

Получил эту работу, используя временно -skip-grant-tables для mysqld. Как только это было сделано, предоставление привилегий работало нормально. http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html имеет подробную информацию для всех, кто может столкнуться с той же проблемой. – LogicWolfe

Смежные вопросы