我如何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”模式下更改用户表,但是我失败了。
所以,这只是一个解决方法。