Полностью заблокирован MySQL!

Мне как-то удалось полностью заблокировать себя из MySQL на WAMP. Кажется, все привилегии запрещены для всех пользователей. Единственный способ, которым я могу попасть в MySQL, - это выполнить командную строку, но без ввода пользователя. Оттуда я буквально ничего не могу сделать... все привилегии отрицаются. Я пробовал обновлять пароль root безрезультатно.

Я также попытался полностью удалить WAMP, а также MySQL. После удаления MySQL я удалил каталоги данных внутри них, чтобы избавиться от всей информации. После повторной установки WAMP проблема сохраняется.

Попытки доступа к PHPMyAdmin приводят к:

#1045 - Access denied for user 'root'@'localhost' (using password: NO) 

Может ли кто-нибудь помочь?

EDIT Почему люди голосуют, чтобы закрыть этот пост...?

EDIT2 Появится дикая вторичная проблема! Что ты хочешь делать? Отвечать или перемещаться?

Ответ 1

Вам потребуется reset пароль root с помощью mysqladmin из командной строки.

mysqladmin password your-new-root-password

Возможно, нужно явно указать пользователя root:

mysqladmin -u root password your-new-root-password

Может также помочь сбросить привилегии из mysqladmin:

mysqladmin flush-privileges

Затем вам может потребоваться вернуть все привилегии root. Не уверен, что это необходимо.

GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'your-new-password';

Ответ 2

http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

Убедитесь, что процесс mysqld убит, прежде чем пытаться выполнить reset. Попробуйте войти в mysql-клиент, как вы говорите, может быть в вашем вопросе.

Ответ 3

Если полная очистка и переустановка результатов приводит к одной и той же проблеме, вероятно, проблема в вашей среде связана с проблемой.

Вы не указываете, какую версию Windows вы используете, но я предполагаю, что она Vista или выше с этими неудобными проблемами привилегий пользователя. Я бы проверял, чтобы учетная запись пользователя службы mysql имела доступ для чтения/записи к каталогам данных и файлам mysql.

ЗАПРОШЕННОЕ РАЗРАБОТКА:

Чтобы проверить учетную запись, на которой работает служба, откройте services.msc, прокрутите вниз соответствующую службу и посмотрите на столбец "Вход в систему" ​​(или дважды щелкните по этой услуге, а затем перейдите на вкладку "Вход" ).

Чтобы проверить разрешения файлов и папок данных MySQL, щелкните правой кнопкой мыши на родительской папке и выберите "Свойства", затем вкладку "Безопасность" (я не уверен, что у вас будет вкладка "Безопасность" с "Домой", хотя - вы бы не в XP).

Если учетная запись, запущенная службой, не имеет полного контроля над папкой и файлами в ней, вам нужно будет отредактировать разрешения для добавления этого пользователя (или изменить пользователя, которому работает служба).

Если все, что не указывает вам в правильном направлении, вы должны найти подробные инструкции по установке WAMP на Win7 Home и убедитесь, что вы следуете им в письме, так как разрешения и т.д. скорее являются PITA на Win7. Возможно, даже Win7 Home не позволит вам запускать сервер webserver/sql в качестве службы, поскольку домашние версии Windows часто преднамеренно искалечиваются подобным образом (fr'instance, вы не можете запускать IIS на WinXP Home и права доступа к папке скрыты).

Ответ 4

Мне удалось повторно получить доступ, просто запустив mysql_secure_installation из командной строки. Он запускал меня по некоторым вопросам y/n и позволял мне (re) устанавливать корень pw.

Ответ 5

Просто потратил навсегда на это.. так много решений не сработало. Наконец это сработало для меня.

Перезапустите MySQL с помощью skip-grant-tables, который обходит безопасность, и теперь вы можете войти и запустить:

USE mysql;
CHECK TABLE user;
REPAIR TABLE user;

Очевидно, я испортил пользователей или что-то в этом роде... и это решило проблему. После этого я обнаружил, что у меня больше нет пользователя root. Поэтому мне пришлось добавить следующую команду (будучи с skip-grant-tables):

INSERT INTO mysql.user 
SET user = 'root', 
host = 'localhost', 
password = Password('yournewrootpw'), 
Select_priv = 'Y',
Insert_priv = 'Y',
Update_priv = 'Y',
Delete_priv = 'Y',
Create_priv = 'Y',
Drop_priv = 'Y',
Reload_priv = 'Y',
Shutdown_priv = 'Y',
Process_priv = 'Y',
File_priv = 'Y',
Grant_priv = 'Y',
References_priv = 'Y',
Index_priv = 'Y',
Alter_priv = 'Y',
Show_db_priv = 'Y',
Super_priv = 'Y',
Create_tmp_table_priv = 'Y',
Lock_tables_priv = 'Y',
Execute_priv = 'Y',
Repl_slave_priv = 'Y',
Repl_client_priv = 'Y',
Create_view_priv = 'Y',
Show_view_priv = 'Y',
Create_routine_priv = 'Y',
Alter_routine_priv = 'Y',
Create_user_priv = 'Y',
Event_priv = 'Y',
Trigger_priv = 'Y',
Create_tablespace_priv = 'Y';

Надеюсь, это сэкономит кому-то еще кучу времени..