如何找出我的MySQL根密码?

| 我刚刚在Ubuntu上安装了MySQL,root用户无法登录:) 我该如何找回密码?使用空白输入密码不起作用。     
已邀请:
您可以通过使用ѭ0running运行服务器来重置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
或ѭ5find中找到重设密码的查询,但以上操作始终有效。 注意:在MySQL 5.7之前,该列称为
password
而不是
authentication_string
。将上面的行替换为
mysql> update user set password=PASSWORD(\"YOUR-NEW-ROOT-PASSWORD\") where User=\'root\';
    
我意识到这是一个旧线程,但是我想我将用我的结果对其进行更新。 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
您必须指定完整的软件包名称。使用meta包\'mysql-server \'对我来说没有理想的结果。我希望这可以帮助别人 :) 参考:https://help.ubuntu.com/12.04/serverguide/mysql.html     
sudo mysql -u root
ALTER USER \'root\'@\'localhost\' IDENTIFIED WITH mysql_native_password BY \'YOUR_PASSWORD_HERE\';
FLUSH PRIVILEGES;

mysql -u root -p # and it works
    
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>  
    
嗯,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服务器。 您可以使用此命令执行此操作 尝试找到临时通行证:
grep \'temporary password\' /var/log/mysqld.log
然后:
sudo mysql_secure_installation
在此链接上是有关mysql 5.7的更多信息 https://dev.mysql.com/doc/refman/5.7/zh-CN/linux-installation-yum-repo.html     
这是设置root密码的最佳方法:Source Link步骤3对我来说非常有效。 给你的命令      须藤MySQL   SELECT user,authentication_string,plugin,host from mysql.user;   ALTER USER \'root \'@ \'localhost \'用mysql_native_password标识\\'password \';   冲洗特权;   SELECT user,authentication_string,plugin,host from mysql.user;   出口    现在,您可以使用root用户的密码为\'password \':      mysql -u root -p   创建用户\'sammy \'@ \'localhost \'由\'password \'标识;   授予所有特权。到\'sammy \'@ \'localhost \'并带有GRANT选项;   冲洗特权;   出口    测试您的MySQL服务和版本:
systemctl status mysql.service
sudo mysqladmin -p -u root version
    
在MYSQL 5.7下,如果使用mysql进行开发,则: 1.杀死mysql:
$ sudo service mysql stop
2.在--skip-grant-tables模式下启动mysql:
$ sudo mysqld_safe --skip-grant-tables 
而且,您可以尝试在“跳过授予表”模式下更改用户表,但是我失败了。 因此,这只是一种解决方法。     
实际上非常简单。您不必经历很多事情。 只需在终端中运行以下命令,然后按照屏幕上的说明进行操作即可。
sudo mysql_secure_installation
    

要回复问题请先登录注册