我如何find我的MySQL根密码?

我刚在Ubuntu上安装MySQL,root用户无法login:)

我如何恢复或找出我的密码? 使用空白密码不起作用。

您可以通过运行带有--skip-grant-tables的服务器来重置根密码,并通过以root身份(或使用sudo)运行以下命令而无需密码login:

 # service mysql stop # mysqld_safe --skip-grant-tables & $ mysql -u root mysql> use mysql; mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root'; mysql> flush privileges; mysql> quit # service mysql stop # service mysql start $ mysql -u root -p 

现在你应该可以用root用你的新密码login了。

也可以在重置密码的用户的/home/$USER/.mysql_history/root/.mysql_history中find重置密码的查询,但以上操作始终有效。

注意:在MySQL 5.7之前,该列被称为password而不是authentication_string 。 用上面的行代替

 mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root'; 

我意识到这是一个古老的线索,但我想我会更新我的结果。

亚历克斯,这听起来像你通过元软件包“MySQL服务器”安装MySQL服务器。 这通过引用安装最新的软件包(在我的例子中,mysql-server-5.5)。 我和你一样,没有按照我的预期提示inputMySQL密码。 我想有两个答案:

解决scheme#1:通过全名安装MySQL:

 $ sudo apt-get install mysql-server-5.5 

要么

解决scheme2:重新configuration软件包…

 $ sudo dpkg-reconfigure mysql-server-5.5 

您必须指定完整的软件包名称。 使用元软件包“mysql-server”对我来说没有想到的结果。 我希望这可以帮助别人 :)

参考: https : //help.ubuntu.com/12.04/serverguide/mysql.html

Ubuntu 14.04上的MySQL 5.5需要与这里推荐的略有不同的命令。 简而言之:

 sudo /etc/init.d/mysql stop sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking & mysql -u root 

然后从MySQL提示符

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

引用的来源也提供了另一种方法。

对于RHEL-mysql 5.5:

 /etc/init.d/mysql stop /etc/init.d/mysql start --skip-grant-tables mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> exit; mysql -uroot -pnewpwd mysql> 

你不能 – 但是: http : //dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

嗯MySQL 5.7.13重置所有我做的是:

$ sudo service mysql stop停止mysql

$ mysqld_safe --skip-grant-tables &启动mysql

$ mysql -u root

就像正确的答案一样。 那么我所做的就是做@eebbesen做的事情。

mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('NEW-password-HERE');

希望它可以帮助任何人:)

在MYSQL 5.7下,如果您使用mysql进行开发,只需:

1.kill mysql:

 $ sudo service mysql stop 

2.在–skip-grant-tables模式下启动mysql:

 $ sudo mysqld_safe --skip-grant-tables 

此外,您可以尝试在“skip-grant-table”模式下更改用户表,但是我失败了。

所以,这只是一个解决方法。