Полностью заблокирован 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';
Надеюсь, это сэкономит кому-то еще кучу времени..