我如何找到我的root MySQL密码?

时间:2011-04-15 23:03:19

标签: mysql ubuntu

我刚刚在Ubuntu上安装了MySQL而root用户无法登录:)

如何恢复或查找密码?使用空格密码不起作用。

11 个答案:

答案 0 :(得分:133)

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

# 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用户身份登录。

也可以在重置密码的用户的/home/$USER/.mysql_history/root/.mysql_history中找到重置密码的查询,但上述内容始终有效。

注意:在MySQL 5.7之前,该列被称为password而不是authentication_string。用

替换上面的行
mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';

答案 1 :(得分:19)

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

Alex,听起来你通过元包'mysql-server'安装了MySQL服务器。这将通过引用安装最新的软件包(在我的例子中,mysql-server-5.5)。我和你一样,在设置时没有按照我的预期提示输入MySQL密码。我想有两个答案:

解决方案#1:用它的全名安装MySQL:

$ sudo apt-get install mysql-server-5.5

或者

解决方案#2:重新配置包...

$ sudo dpkg-reconfigure mysql-server-5.5

您必须具体说明完整的包名称。使用元包'mysql-server'对我来说没有预期的结果。我希望这有助于某人:)

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

答案 2 :(得分:7)

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

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;

the cited source也提供了另一种方法。

答案 3 :(得分:6)

Sub CreatePivotTable1()
Dim maxfromROW As Integer

Set wb = ThisWorkbook


i = 1

Do Until Cells(1 + i, 1).Value = "This row"

i = i + 1
Loop

maxfromROW = Application.WorksheetFunction.HLookup(99, Range("A4:O20"), i + 1, False)

wb.Worksheets("Hárok1").Range("B20").Value = maxOVB2
End Sub

答案 4 :(得分:3)

对于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>  

答案 5 :(得分:1)

Hmm 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');

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

答案 6 :(得分:1)

有一个简单的解决方案。

MySql 5.7带有匿名用户,因此您需要重新配置MySQL服务器。

您可以使用此命令

尝试查找临时通行证:

grep 'temporary password' /var/log/mysqld.log

然后:

sudo mysql_secure_installation

在此链接上是有关mysql 5.7的更多信息

https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

答案 7 :(得分:1)

这是设置root密码的最佳方法:Source Link第3步对我来说非常有效。

命令给您

  
      
  1. sudo mysql
  2.   
  3. 从mysql.user中选择用户,身份验证字符串,插件,主机;
  4.   
  5. 使用mysql_native_password通过'password'标识ALTER USER'root'@'localhost';
  6.   
  7. 冲洗特权;
  8.   
  9. 从mysql.user中选择用户,身份验证字符串,插件,主机;
  10.   
  11. 退出
  12.   

现在,您可以为root用户使用“ 密码”密码:

  
      
  1. mysql -u根-p
  2.   
  3. 创建用户'sammy'@'localhost'由'password'标识;
  4.   
  5. 上授予所有特权。通过GRANT选项将其“ sammy” @“ localhost”;
  6.   
  7. 冲洗特权;
  8.   
  9. 退出
  10.   

测试您的MySQL服务和版本:

systemctl status mysql.service
sudo mysqladmin -p -u root version

答案 8 :(得分:0)

在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"下的用户表。模式,但我失败了。

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

答案 9 :(得分:0)

实际上非常简单。您不必经历很多事情。 只需在终端中运行以下命令并按照屏幕上的说明进行操作即可。

sudo mysql_secure_installation

答案 10 :(得分:0)

在这里我要作一个假设,因为我不确定。我认为我的mysql(在最新的20.04版本上运行)甚至没有根目录。我试过设置一个,我记得有问题。我怀疑没有root用户,如果您以root用户身份登录,它将自动以mysql root用户身份登录。

我为什么这么认为?因为当我执行mysql -u root -p时,它将接受任何密码,并在以root用户身份登录时以mysql root用户身份登录。

我已经确认在非root用户上尝试该操作无效。

我喜欢这个模特。

罗恩