Как изменить мой пароль root MySQL обратно на пустой?


43

Когда я работаю локально, мне не нужно вводить пароль для доступа к моей базе данных. Я изменил свой пароль root, когда впервые установил mysql, но я не знаю, как сменить пароль обратно. Что мне делать?

Ответы:


43

Чтобы изменить пароль root на newpassword:

 mysqladmin -u root -p'oldpassword' password 'newpassword'

Чтобы изменить его, чтобы root не требовал пароль:

 mysqladmin -u root -p'oldpassword' password ''

Примечание: я думаю, что важно, что между -pи нет пробела, 'oldpassword'но я могу ошибаться


3
я продолжаю получать сообщение об ошибке: доступ запрещен для «root» @ localhost. как я могу это исправить, пожалуйста?
TQ

работает для меня: mysqladmin -u root -p'oldpassword 'password' '@tq: вы должны ввести совершенно старый пароль
Bảo Nam

15

Вместо того, чтобы удалить пароль (который может иметь неприятные последствия в будущем, если вам случится подвергнуть этот сервер воздействию диких символов), поместите текущий пароль (и ваше имя пользователя) в ~/.my.cnf(или предположительно в какое-нибудь эквивалентное место в Windows), которое выглядит следующим образом:

[client]
user = root
password = s3kr1t

Это дает MySQL отличную возможность автоматически выполнять авторизацию, используя предоставленные учетные данные, не оставляя вас широко открытыми для неприятностей в будущем.


7
  1. Остановите mysqld и перезапустите его с параметром --skip-grant-tables .
  2. Подключитесь к нему, используя только mysql .
  3. Изменить пароль root:

    ОБНОВЛЕНИЕ mysql.user SET Password = PASSWORD ('MyNewPass') WHERE User = 'root';

    ПРИВИЛЕГИИ ПРОМЫВКИ;

Для справки: официальные документы mysql .


1
Это работает, но это грубая сила. Это больше для случаев, когда вы не знаете пароль.
Дэвид

6

Обратите внимание, что начиная с MySQL 5.7, плагин validate_password активен по умолчанию и не позволяет использовать пустой пароль.

Вам нужно отключить этот плагин, чтобы разрешить пустой пароль:

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

Будьте осторожны, если вы не заботитесь о безопасности, вы должны следовать советам @ womble и использовать пароль вместе с .my.cnfфайлом для удобства.

Проверьте мою статью Удаление корневого пароля MySQL на эту тему!


Для версий> 5.6 это единственный способ, который работает. Я подозреваю, что это должно работать и на предыдущих версиях.
Диего

1

В новых версиях

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

и это удалит пароль

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.