如何将我的mysql根密码更改回空?


43

在本地工作时,我实际上不需要输入密码即可访问数据库。第一次安装mysql时,我更改了root密码,但是我不知道如何将密码改回来。我该怎么办?

Answers:


43

要将根密码更改为newpassword

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

要更改它,以便root不需要密码:

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

注意:我认为,-p和之间没有空格很重要,'oldpassword'但是我对此可能是错的


3
我一直收到错误消息:拒绝'root'@ localhost访问。我该如何解决?
tq 2012年

对我的作品:中mysqladmin -u根-p'oldpassword”密码'@tq:你必须您准确旧密码输入
宝南

15

而不是删除密码(如果您碰巧使该服务器暴露在野外,将来可能会带来不愉快的后果),而是将当前密码(和您的用户名)放入如下所示的~/.my.cnf(或可能在Windows中等效的位置):

[client]
user = root
password = s3kr1t

这使MySQL具备了使用所提供的凭据自动登录的强大功能,而不会在以后为您带来不愉快的机会。


7
  1. 停止mysqld并使用--skip-grant-tables选项重新启动它。
  2. 仅使用mysql连接到它。
  3. 更改root密码:

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

    冲洗特权;

供参考:官方mysql文档


1
这是可行的,但是是蛮力的。当您不知道密码时,这更适合。
David

6

请注意,从MySQL 5.7开始,validate_password插件默认情况下处于活动状态,并阻止您使用空密码。

您需要禁用此插件以允许输入空密码:

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

请注意,除非您不关心安全性,否则应遵循@womble的建议,并使用密码和.my.cnf文件以方便使用。

检查我的文章关于此主题的删除MySQL root密码


对于5.6以上的版本,这是唯一可行的方法。我怀疑它也可以在以前的版本上工作。
迭戈

1

在较新的版本中

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

这将删除密码

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.