2013-11-12 6 views
2

Я, кажется, забыл свой пароль для входа в систему как пользователь root для MySql, в терминале (mac). Я консультировался с документацией mysql по адресу http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html, однако это, похоже, не работает для меня. Что я могу сделать дальше?Mysql root access denied

user$ mysql -u root -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

Вот текущие базы данных, доступные для меня w. База данных MySql, похоже, не появляется там. Почему это?

user$ mysql 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 12 
Server version: 5.6.13 Source distribution 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> show databases; 

+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| test    | 
+--------------------+ 

ответ

1

Я лично никогда не мог заставить метод ini или текстового файла работать, чтобы отправлять другие команды при сбросе.

Общие инструкции по эксплуатации C.5.4.1.3. Сброс пароля root: общие инструкции из этой гиперссылки, как правило, я нахожу для работы.

Чтобы изменить корневой пароль:

  1. Стоп mysqld, если он работает в данный момент.
  2. Запустить mysqld в «безопасный режим» с использованием опции командной строки --skip-grant-tables. (Примечание: это рекомендуется, если это возможно использовать опцию --skip-networking, а также, если это возможно, чтобы избежать открытия доступа к серверу базы данных к остальной части сети/Интернет в то время как вы это делаете !!)

    Это запустит демон mysql.

  3. Откройте ваш предпочитаемый клиент mysql и войдите в систему как пользователь root без пароля или введите mysql -u root на терминал. Вам не нужно будет вводить пароль, потому что таблицы грантов были пропущены.

    Теперь вы можете войти в сервер mysql и получить сообщение MOTD/welcome.

  4. Выполнить эти команды SQL (Примечание: помните завершающая точка с запятой!)

    use mysql; 
    
    update user SET Password=PASSWORD('MyNewPass') WHERE User='root'; 
    FLUSH PRIVILEGES; 
    
  5. Выход из MySQL клиент

  6. Остановите mysqld демон - Важно! Если вы не остановите демон, сервер базы данных будет продолжать работать с открытыми правами!

  7. Перезагрузите daemon mysqld при нормальных условиях.

Чтобы ответить на ваш вопрос:

Вот текущие базы данных, доступные мне ж. База данных MySql, похоже, не появляется там. Почему это?

Вы видите только те базы данных, для которых у вас есть привилегия, если у вас нет глобальной привилегии SHOW DATABASES.

MySQL SHOW DATABASES Documentation

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