Andrew Asked: 2010-01-17 09:08:00 +0800 CST2010-01-17 09:08:00 +0800 CST 2010-01-17 09:08:00 +0800 CST 如何将我的 MySQL 根密码改回空? 772 当我在本地工作时,我真的不需要输入密码来访问我的数据库。我第一次安装 MySQL 时更改了我的 root 密码,但我不知道如何改回我的密码。我应该怎么办? mysql password 7 个回答 Voted Andrew 2010-01-17T10:16:30+08:002010-01-17T10:16:30+08:00 要将 root 密码更改为newpassword: mysqladmin -u root -p'oldpassword' password 'newpassword' 要更改它以使 root 不需要密码: mysqladmin -u root -p'oldpassword' password '' 注意:我认为和之间没有空格很重要,-p但'oldpassword'我可能错了 womble 2010-01-17T12:39:25+08:002010-01-17T12:39:25+08:00 不要删除密码(如果您碰巧将该服务器暴露在野外,这可能会在将来产生不愉快的后果),而是将当前密码(和您的用户名)放入~/.my.cnf(或可能是 Windows 中的某个等效位置),如下所示: [client] user = root password = s3kr1t 这为 MySQL 提供了使用提供的凭据自动登录的强大能力,而不会让您在未来感到不愉快。 geek 2010-01-17T11:07:06+08:002010-01-17T11:07:06+08:00 停止 mysqld 并使用--skip-grant-tables选项重新启动它。 仅使用mysql连接到它。 修改root密码: UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES; 供参考:官方 mysql 文档。 BenMorel 2017-09-08T04:29:01+08:002017-09-08T04:29:01+08:00 请注意,从 MySQL 5.7 开始,validate_password插件默认处于活动状态,并防止您使用空密码。 您需要禁用此插件以允许空密码: UNINSTALL PLUGIN validate_password; SET PASSWORD FOR root@localhost = PASSWORD(''); 请注意,除非您不关心安全性,否则应遵循@womble 的建议并使用密码以及.my.cnf文件以方便使用。 查看我关于此主题的文章删除 MySQL 根密码! Abadis 2019-01-19T02:00:52+08:002019-01-19T02:00:52+08:00 在较新的版本中 UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root' 这将删除密码 UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root' malhal 2019-12-28T03:30:01+08:002019-12-28T03:30:01+08:00 我还在安装时创建了一个 root 密码,并且一旦我了解如果我以 root 身份运行命令或启动应用程序,他们可以在没有任何密码的情况下连接到数据库,这比使用另一个密码要简单得多,因此我想改回使用 unix 身份验证。 我使用密码以 root 身份连接,然后运行: ALTER USER 'root'@'localhost' IDENTIFIED BY ''; 要测试打开一个新终端,sudo su然后mysql检查它是否在没有密码的情况下连接(设置密码时这不起作用)。 我还创建了一个 MySQL 帐户,其用户名与我的 unix 帐户相同,同样没有密码,并使用 root 帐户授予它访问我需要的表的权限,然后我也可以从我的用户帐户中的应用程序连接而无需更改为 root . 这超出了问题的范围,但接下来我将研究挂钩 unix 用户创建过程以自动创建匹配的 MySQL 用户帐户。 MySQL Docs中的更多信息和其他方法如何重置根密码 maestro 2019-11-16T13:51:14+08:002019-11-16T13:51:14+08:00 对于最新的 MySQL 5.7.23: mysqladmin -u root password '' -p
要将 root 密码更改为
newpassword
:要更改它以使 root 不需要密码:
注意:我认为和之间没有空格很重要,
-p
但'oldpassword'
我可能错了不要删除密码(如果您碰巧将该服务器暴露在野外,这可能会在将来产生不愉快的后果),而是将当前密码(和您的用户名)放入
~/.my.cnf
(或可能是 Windows 中的某个等效位置),如下所示:这为 MySQL 提供了使用提供的凭据自动登录的强大能力,而不会让您在未来感到不愉快。
供参考:官方 mysql 文档。
请注意,从 MySQL 5.7 开始,validate_password插件默认处于活动状态,并防止您使用空密码。
您需要禁用此插件以允许空密码:
请注意,除非您不关心安全性,否则应遵循@womble 的建议并使用密码以及
.my.cnf
文件以方便使用。查看我关于此主题的文章删除 MySQL 根密码!
在较新的版本中
这将删除密码
我还在安装时创建了一个 root 密码,并且一旦我了解如果我以 root 身份运行命令或启动应用程序,他们可以在没有任何密码的情况下连接到数据库,这比使用另一个密码要简单得多,因此我想改回使用 unix 身份验证。
我使用密码以 root 身份连接,然后运行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
要测试打开一个新终端,
sudo su
然后mysql
检查它是否在没有密码的情况下连接(设置密码时这不起作用)。我还创建了一个 MySQL 帐户,其用户名与我的 unix 帐户相同,同样没有密码,并使用 root 帐户授予它访问我需要的表的权限,然后我也可以从我的用户帐户中的应用程序连接而无需更改为 root .
这超出了问题的范围,但接下来我将研究挂钩 unix 用户创建过程以自动创建匹配的 MySQL 用户帐户。
MySQL Docs中的更多信息和其他方法如何重置根密码
对于最新的 MySQL 5.7.23:
mysqladmin -u root password '' -p