如何重置mysql root密码?

我有一个与我的phpmyadmin有点问题,其实我不小心删除了多个用户帐户。 由于不可能没有错误连接:

# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO) 

我之前在网上search了一下,甚至是技术上:

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

不起作用,或者我不明白它是如何工作的。

我在FreeBSD 8.1上,我的PhpMyadmin版本是2.11。

预先感谢您的回答。

我在这里总结了我的解决scheme: http : //snippets.dzone.com/posts/show/13267

 sudo stop mysql sudo mysqld --skip-grant-tables --skip-networking mysql mysql> update mysql.user set password = password('your_new_password') where user = 'root'; mysql> flush privileges; mysql> exit; sudo mysqladmin shutdown sudo start mysql 

对于MySQL 5.7.16或更高版本,我发现这个 (从mysql.com)是工作的解决scheme。 以下是与以前的旧版本不同的一些点

1)我使用下面的命令在安全模式下运行mysql,根据其他一些实际上可以正常工作的引用(mysql 5.7.16 ubuntu 16.04)。

 mysqld_safe --skip-grant-tables --skip-networking 

2)下面的更新stmt不适用于以后的版本(即5.7和更高版本)

 -- NOT Working for 5.7 and later UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root'; FLUSH PRIVILEGES; 

INSTEAD在5.7.6及更高版本中使用

 UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES; 

或者5.7.5或更低版本的用户。

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

这一个为我工作,没有副作用。 https://help.ubuntu.com/community/MysqlPasswordReset

请按照以下链接中的说明重置您的root密码。您必须从外部mysql执行此操作。

重置MySql密码

忘记你的MySQL密码可能是一个真正令人头痛的问题。这里有一些简单的步骤,你可以按照Windows恢复MySql密码停止MySql

您必须先停止MySql服务,然后才能继续。在Windows环境中,转到“任务pipe理器”并在“服务”选项卡下findMySQL并停止它。 写Sql来改变你的密码

所有你需要做的就是创build一个文本文件,并把下面两行。 UPDATE mysql.user SET Password = PASSWORD('MyNewPass')WHERE User ='root'; FLUSH PRIVILEGES; 将其保存在C:\驱动器下,并为其命名为“mysql-init.txt”。

现在是时候重新启动MySQl,而这次是从命令行停止的。 C:> C:\ mysql \ bin \ mysqld -nt –init-file = C:\ mysql-init.txt完成!

现在,您可以使用新密码login。 当你完成删除你在前一阶段创build的文件。

还有一个链接( http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password ),我已经解释了同样的事情。

希望这将有助于.. 🙂

在Windows上的XAMPP的答案:

  • 编辑C:\ xampp \ mysql \ bin \ my.ini并在[mysqld]下面插入skip-grant-tables
  • 从控制面板界面重新启动MySQL
  • 在phpMyAdmin窗口中,从顶部面板中selectSQL选项卡。 这将打开我们可以运行SQL查询的SQL选项卡。 现在在文本区域中input下面的查询,然后点击Go

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

  • 删除my.ini文件中的skip-grant-tables
  • 从控制面板界面重新启动MySQL

DONE!

请注意,mysql root用户密码不必与phpmyadmin的密码相同。