当前位置: 首页>>技术教程>>正文


如何重设或更改MySQL root密码?

, ,

问题描述

如何在ubuntu服务器中更改MySQL的root密码和用户名?设置任何更改之前,我需要停止mysql服务吗?

我也有phpmyadmin设置,phpmyadmin会自动更新吗?

最佳解决方法

在Ubuntu Linux上设置/更改/重置MySQL根密码。在终端中输入以下行。

  1. 停止MySQL服务器:sudo /etc/init.d/mysql stop

  2. 启动mysqld配置:sudo mysqld --skip-grant-tables &

    在某些情况下,您必须先创建/var/run/mysqld

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
    
  3. 以root用户身份登录到MySQL:mysql -u root mysql

  4. 用新密码替换YOURNEWPASSWORD

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

Note: on some versions, if password column doesn’t exist, you may want to try:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

注意:此方法不被认为是重置密码的最安全方法,但是它可以工作。

参考文献:

  1. Set / Change / Reset the MySQL root password on Ubuntu Linux

  2. How to Reset the Root Password

次佳解决方法

在ubuntu服务器上重置根密码的官方简便方法…

如果您使用的是16.04、14.04和12.04:

sudo dpkg-reconfigure mysql-server-5.5

如果您使用的是10.04:

sudo dpkg-reconfigure mysql-server-5.1

如果不确定安装了哪个mysql-server版本,则可以尝试:

dpkg --get-selections | grep mysql-server

mysql-server-5.7的更新说明

请注意,如果使用的是mysql-server-5.7,则不能使用上面显示的更简单的dpkg-reconfigure方法。

如果您知道密码,请登录并运行此命令:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

另外,您可以使用以下方法:

sudo mysql_secure_installation

这将向您询问有关确保安装安全的一系列问题(强烈建议),包括是否要提供新的root密码。

如果您不知道root密码refer to this Ubuntu-centric write up on the process

查看更多信息:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html

第三种解决方法

唯一对我有用的方法是描述的here(我正在运行ubuntu 14.04)。为了清楚起见,这些是我遵循的步骤:

  1. sudo vim /etc/mysql/my.cnf

  2. 在末尾添加以下行:[mysqld] skip-grant-tables

  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';-查看顶部以确定密码列是称为password还是authentication_string

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';-使用上方的正确密码列

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. 如果要保持安全标准,请删除在步骤2中添加的行。

  12. sudo service mysql restart

供参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

第四种方法

我将分享逐步的最终解决方案,以在Linux Ubuntu中重置MySQL密码。

Reference taken from blog (dbrnd.com)

步骤1:停止MySQL服务。

sudo stop mysql

步骤2:杀死所有正在运行的mysqld。

sudo killall -9 mysqld

步骤3:以安全模式启动mysqld。

sudo mysqld_safe --skip-grant-tables --skip-networking &

步骤4:启动mysql客户端

mysql -u root

步骤5:成功登录后,请执行此命令以更改任何密码。

FLUSH PRIVILEGES;

步骤6:您可以更新mysql root password。

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

注意:在MySQL 5.7上,列Password称为authentication_string

步骤7:请执行此命令。

FLUSH PRIVILEGES;

第五种方法

什么对我有用(Ubuntu 16.04,mysql 5.7):

停止MySQL

sudo service mysql stop

制作MySQL服务目录。

sudo mkdir /var/run/mysqld

授予MySQL用户写入服务目录的权限。

sudo chown mysql: /var/run/mysqld

手动启动MySQL,无需权限检查或联网。

sudo mysqld_safe --skip-grant-tables --skip-networking &

在另一个控制台上,不用密码登录。

mysql -uroot mysql

然后:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

关闭MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常启动MySQL服务。

sudo service mysql start

第六种方法

更改MySQL root密码。

此方法将密码公开给命令行历史记录,这些命令应以root用户身份运行。

  1. 通过mysql命令行工具登录:

    mysql -uroot -poldpassword
    
  2. 运行以下命令:

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

要么

  1. 运行以下命令,为当前用户设置密码(在这种情况下为’root’):SET PASSWORD = PASSWORD(‘newpassword’);

第七种方法

我遇到了ubuntu 18.04和mysql 5.7的问题,这是解决方案

在执行命令之前,尝试重新启动mysql-server

sudo service mysql restart

MYSQL-SERVER> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL-SERVER< 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

第八种方法

如果您想更改MySQL的root密码,请在终端中输入:

sudo dpkg-reconfigure mysql-server-5.5

MySQL守护程序将停止,并提示您输入新密码。

第九种方法

这就像我为Ubuntu 16.04所做的魅力一样。当我从那里得到的时候,对下面的链接有充分的感谢。 [https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]

停止MySQL

sudo service mysql stop

制作MySQL服务目录。须藤mkdir /var /run /mysqld

授予MySQL用户写入服务目录的权限。

sudo chown mysql: /var/run/mysqld

手动启动MySQL,无需权限检查或联网。

sudo mysqld_safe --skip-grant-tables --skip-networking &

不使用密码登录。

mysql -uroot mysql

更新root用户的密码。确保通过以下查询至少更新了根帐户。进行一些选择并检查现有值(如果需要)

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

关闭MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常启动MySQL服务。

sudo service mysql start

第十种方法

  1. 停止MySQL sudo服务mysql stop

  2. 制作MySQL服务目录。须藤mkdir /var /run /mysqld

  3. 授予MySQL用户写入服务目录的权限。须藤chown mysql:/var /run /mysqld

  4. 手动启动MySQL,无需权限检查或联网。须藤mysqld_safe –skip-grant-tables –skip-networking&

5.不使用密码登录。 mysql -uroot mysql

6.更新root用户的密码。

更新mysql.user SET authentication_string = PASSWORD(‘YOURNEWPASSWORD’),plugin = ‘mysql_native_password’ WHERE User = ‘root’ AND Host = ‘%’;出口;

  1. 关闭MySQL。 sudo mysqladmin -S /var/run/mysqld/mysqld.sock关闭

  2. 正常启动MySQL服务。 sudo服务mysql启动

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7428.html,未经允许,请勿转载。