MySQL root密码更改

时间:2011-09-23 19:47:58

标签: mysql root mysqladmin

我一直在尝试重置我的MySQL root密码。我运行了mysqld_safe --skip-grant-tables,更新了root密码,并检查了用户表以确保它在那里。一旦重新启动mysql守护程序,我尝试使用我刚设置的新root密码登录,并仍然因用户“root”错误而拒绝访问。我也试过完全删除并重新安装mysql(包括删除my.cnf文件),但仍然没有运气。有没有人对我接下来要做什么有任何建议?

提前致谢

24 个答案:

答案 0 :(得分:60)

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');

答案 1 :(得分:45)

从MySQL参考手册中看看这个:

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

请查看此页面以获取更多信息:Resetting the Root Password: Unix Systems

答案 2 :(得分:18)

发现它!我更改密码时忘记了密码。我用这个查询来解决我的问题:

update user set password=PASSWORD('NEW PASSWORD') where user='root';

我忘了PASSWORD('NEW PASSWORD'),只是用明文输入新密码

答案 3 :(得分:11)

这是WAMP v3.0.6及更高版本的更新答案

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

>FLUSH PRIVILEGES;

在MySQL版本5.7.x中,mysql表中没有更多的密码字段。它被authentication_string替换。

答案 4 :(得分:10)

请按照以下步骤操作。

步骤1。停止mysql

步骤2。 sudo mysqld_safe --skip-grant-tables

步骤3。mysql -u root

步骤4。use mysql;

STEP5。show tables;

步骤6。describe user;

STEP7。update user set authentication_string=password('1111') where user='root';

使用密码1111登录

答案 5 :(得分:7)

在 MySQL 8 上,您需要指定密码散列方法:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new-password';

答案 6 :(得分:4)

您必须重置密码! mac osx(测试和工作)和ubuntu的步骤

停止MySQL

$ sudo /usr/local/mysql/support-files/mysql.server stop

以安全模式启动:

$ sudo mysqld_safe --skip-grant-tables

(上面一行是整个命令)

这将是一个持续的命令,直到该过程完成,因此打开另一个shell /终端窗口,无需密码登录:

$ mysql -u root

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

启动MySQL

sudo /usr/local/mysql/support-files/mysql.server start

您的新密码是“密码”。

答案 7 :(得分:3)

我也进行了搜索,可能有些答案适合某些情况,

我的情况是在Ubuntu 18.04.2 LTS系统上是Mysql 5.7:

(获得root特权)

$ sudo bash

(为root数据库用户设置密码+分步实施安全性)

# mysql_secure_installation

(通过密码代替套接字访问root用户)

(+编辑:显然您需要再次设置密码吗?)

(不要将其设置为“ mySecretPassword” !!!)

# mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> set password for 'root'@'localhost' = PASSWORD('mySecretPassword'); 
mysql> FLUSH PRIVILEGES;
mysql> exit;

# service mysql restart

非常感谢zetacu(和erich)为this excellent answer(在搜索了几个小时之后...)

享受:-D

S。

答案 8 :(得分:2)

我经常遇到的一个常见错误是,我忘记了-p选项,所以你确定使用过:

mysql -u root -p

答案 9 :(得分:2)


这适用于 Mac 用户。


更新:在 8.0.15(可能已经在那个版本之前)PASSWORD() 函数不起作用你必须这样做:

确保您已先停止 MySQL(上图)。 以绕过特权的安全模式运行服务器:

<块引用>

sudo mysqld_safe --skip-grant-tables

用你的 MySQL 路径替换这个 mysqld_safe 就像在我的例子中一样

<块引用>

sudo /usr/local/mysql/bin/mysqld_safe –skip-grant-tables

那么您必须执行以下步骤。

<块引用>

mysql -u root

更新 mysql.user SET authentication_string=null WHERE User='root';

同花顺特权;

退出;

然后

<块引用>

mysql -u root

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的密码';

答案 10 :(得分:2)

在MySQL 5.7中,密码被替换为&#39; authentication_string&#39;。

使用

update user set authentication_string=password('myfavpassword') where user='root';

答案 11 :(得分:2)

这对我有用-

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html

答案 12 :(得分:2)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

您可以在MySQL文档中找到Resetting the Root Password

答案 13 :(得分:1)

对我来说,只有这些步骤可以帮助我在 8.0.19 版上设置 root 密码:

mysql
SELECT user,authentication_string FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';
FLUSH PRIVILEGES;
SELECT user,authentication_string FROM mysql.user;

如果您可以看到 root 用户的更改,则它可以工作。 来源:https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server

答案 14 :(得分:1)

使用 mysqladmin 命令行实用程序更改MySQL密码:

mysqladmin --user=root --password=oldpassword password "newpassword"

Source

答案 15 :(得分:0)

对于当前最新的mysql版本(8.0.16),这些答案对我都不起作用。

在查看了几个不同的答案并将它们组合在一起之后,我最终使用了有效的方法:

update user set authentication_string='test' where user='root';

希望这会有所帮助。

答案 16 :(得分:0)

这么多的评论,但这种方法对我有所帮助:

sudo mysqladmin -u root password 'my password'

在我安装后的情况下,我获得了MySQL服务,但没有root用户密码,因此我需要设置密码以确保安全。

答案 17 :(得分:0)

在MySQL 8.0.4 +

要更新当前的root用户:

选择select current_user();
设置密码='new_password';

要更新其他用户:

设置'otherUser'@'localhost'='new_password'的密码;

要在更新密码之前设置密码策略:

设置全局validate_password.policy = 0;
设置密码='new_password';
为'otherUser'@'localhost'='new_password'设置密码;

其他/更好的更新根密码的方法:

mysql_secure_installation



是否要坚持使用5.x身份验证,以便仍可以使用旧版应用程序?

在my.cnf

default_authentication_plugin = mysql_native_password

要更新根:

设置全局validate_password.policy = 0;
通过'new_password'更改用mysql_native_password标识的用户'root'@'localhost';

答案 18 :(得分:0)

对于MySQL 5.7.6和更高版本:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

对于MySQL 5.7.5和更早版本:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

答案 19 :(得分:0)

或者仅使用交互式配置:

sudo mysql_secure_installation

答案 20 :(得分:0)

对于MacOS用户,如果您忘记了root密码,@ soraraK的答案(https://stackoverflow.com/a/28601069/5628856)是好的,但还有一些技巧:

如果您使用系统首选项启动mysql服务器端,只需

sudo mysqld_safe --skip-grant-tables

可能不适合你。

您必须确保命令行参数与system start config相同。

以下命令适用于我:

/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so --skip-grant-tables

您可以使用

ps aux | grep mysql

检查你自己的。

答案 21 :(得分:0)

在Ubuntu上,

sudo dpkg-reconfigure mysql-server-5.5 

5.5替换为您当前的版本,系统会要求您输入新的root密码。

答案 22 :(得分:0)

停止所有的wamp服务,退出wamp。

打开记事本,然后输入&gt; 设置密码为'root'@'localhost'= PASSWORD('');

然后将其保存到c:带有任何名称的驱动器..就像这样“c:/example.txt”

现在转到你的“wamp”falder wamp&gt; bin> mysql&gt; mysql(您的版本)&gt;箱子 在我的情况下路径是“C:\ wamp \ bin \ mysql \ mysql5.6.17 \ bin”

现在复制你的路径然后用(ctrl + r)运行cmd然后输入“cmd”(输入)

键入cd然后右键单击cmd并粘贴路径(输入) 现在键入(mysqld --init-file = C:\ example.txt)不带括号然后(输入)

然后重启PC或打开taskmgr并杀死mysqld.exe

启动wamp,您的密码将被删除...

答案 23 :(得分:-1)

  1. 在Mac开放系统偏好设置中> MySQL。
  2. 在MySQL的配置部分中检查初始化数据库。
  3. 在提示中更改密码。 initialize Database