214

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

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

4

35 回答 35

273

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

  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
  1. 以 root 身份登录 MySQL:mysql -u root mysql
  2. 替换YOURNEWPASSWORD为您的新密码:

对于 MySQL < 8.0

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

注意:在某些版本中,如果password列不存在,您可能需要尝试:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

注意:此方法不被认为是最安全的密码重置方法,但它确实有效。

对于 MySQL >= 8.0

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';

参考:

  1. 在 Ubuntu Linux 上设置/更改/重置 MySQL root 密码
  2. 如何重置 Root 密码 (v5.6)
  3. 如何重置 Root 密码 (v8.0)
于 2013-05-15T03:52:44.700 回答
159

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

  1. sudo vim /etc/mysql/my.cnf
  2. 在末尾添加以下行:

    [mysqld]
    
    跳过授予表
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- 查看顶部确定密码列是否称为 密码身份验证字符串

  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

于 2015-07-31T17:28:07.470 回答
101

在 ubuntu 服务器上重置 root 密码的官方且简单的方法...

如果您在 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 密码,请参阅这篇以 Ubuntu 为中心的关于该过程的文章

查看更多信息:

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

于 2014-03-27T03:57:47.367 回答
86

什么对我有用(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
于 2017-09-06T13:41:07.253 回答
79

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

参考来自博客 (dbrnd.com)

第 1 步:停止 MySQL 服务。

sudo stop mysql

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

sudo killall -9 mysqld

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

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

第四步:启动mysql客户端

mysql -u root

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

FLUSH PRIVILEGES;

第 6 步:您可以更新 mysql root 密码。

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

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

第 7 步:请执行此命令。

FLUSH PRIVILEGES;
于 2015-09-08T05:03:21.910 回答
65

首先运行这个命令:

sudo mysql

然后你应该检查你的 MySQL 用户帐户使用哪种身份验证方法。所以运行这个命令

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在你已经可以看到这样的东西了:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

在上面的表格中,您可以看到您所有的 mysql 用户帐户状态以及如果您mysql_native_password在插件列中看到之前为 root 帐户设置了密码auth_socket。总而言之,为了更改您的 root 密码,您应该运行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

请务必将密码更改为您选择的强密码。然后重新加载您的服务器以使您的新更改生效,运行此;

FLUSH PRIVILEGES;

因此,通过以下命令再次检查您的 mysql 采用的身份验证方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在输出是:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

正如您在授权表中看到的那样,您的 root 帐户拥有mysql_native_password 。现在你可以退出 MYSQL shell

exit;

就是这样。只是你应该重新启动mysql sudo service mysql restart。现在您可以使用密码轻松地以 root 帐户登录 mysql。

于 2019-10-23T06:55:14.820 回答
47

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

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

sudo service mysql restart

MYSQL 服务器 >= 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 服务器 < 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;
于 2018-06-25T12:21:34.337 回答
36

更改 MySQL 根密码。

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

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

    mysql -uroot -poldpassword
    
  2. 运行此命令:

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

或者

  1. 运行此命令,为当前用户设置密码(本例中为“root”):

    设置密码=密码('新密码');

于 2013-10-26T20:22:44.097 回答
13

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

sudo dpkg-reconfigure mysql-server-5.5

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

于 2015-12-06T10:15:24.543 回答
13

这就像我为 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 服务目录。sudo mkdir /var/run/mysqld

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

sudo chown mysql: /var/run/mysqld

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

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

无需密码即可登录。

mysql -uroot mysql

更新 root 用户的密码。确保至少 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
于 2017-09-20T19:39:17.680 回答
13
  1. 停止 MySQL sudo service mysql stop

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

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

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

5.无密码登录。 mysql -uroot mysql

6.更新root用户的密码。

UPDATE 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 启动

于 2018-04-02T11:11:09.360 回答
12

此方案属于 MySQL 以前的版本。通过使用套接字身份验证登录 MySQL,您可以做到这一点。

sudo mysql -u root

然后可以运行以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

详情可在此处获得。

于 2018-07-20T14:26:45.570 回答
12

就我而言,这个选项有帮助:https
://stackoverflow.com/a/49610152/13760371 谢谢你,Rahul。

除了以下时刻,当我尝试输入命令时:

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

控制台发出警告:

1681 'password' is deprecated and will be removed in a future release

用这个命令治愈:

UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

MySQL 版本 5.7.X

我的变种:

1. > sudo service mysql stop
2. > sudo mkdir /var/run/mysqld
3. > sudo chown mysql: /var/run/mysqld
4. > sudo mysqld_safe --skip-grant-tables --skip-networking &
5. > mysql -uroot mysql
6. > UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
7. > \q;
8. > sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
9. > sudo service mysql start
于 2020-06-30T14:21:50.960 回答
10

这是我的解决方案。我在 Ubuntu 18.04 工作: https ://stackoverflow.com/a/46076838/2400373

但重要的是最后一步的这种变化:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
于 2018-11-20T03:22:22.430 回答
8

对于 Ubuntu 18.04 和 mysql 版本 14.14 Distrib 5.7.22,请按照以下步骤重置 mysql 密码。

步骤1

sudo systemctl stop mysql

第2步

sudo systemctl edit mysql

此命令将在 nano 编辑器中打开一个新文件,您将使用它来编辑 MySQL 的服务覆盖。这些更改了 MySQL 的默认服务参数。该文件将为空,因此添加以下内容:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

第 3 步

sudo systemctl daemon-reload
sudo systemctl start mysql

第4步

sudo mysql -u root

第 5 步

FLUSH PRIVILEGES;

第 6 步

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

第 7 步

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

第 8 步

sudo systemctl revert mysql

最后

sudo systemctl restart mysql

现在享受

于 2019-05-04T17:33:15.933 回答
6

回应 rogerdpack 的评论:如果您不知道 MySQL 根密码并且您不关心 MySQL 数据/设置,您可以重新安装它并重置根密码,如下所示:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

在安装过程中,您可以选择 root 的密码:

在此处输入图像描述

于 2018-01-22T22:39:09.893 回答
5

如果您知道当前密码,则不必停止 mysql 服务器。打开 ubuntu 终端。使用以下命令登录 mysql:

mysql - username -p

然后输入您的密码。这将带您进入 mysql 控制台。在控制台中,键入:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

然后使用以下命令刷新权限:

> flush privileges;

然后你就完成了。

于 2017-08-24T07:38:51.050 回答
3

你不需要这一切。只需登录:

mysql -u root -p

然后根据提示修改当前用户的密码mysql>

mysql> set password=password('the_new_password');
mysql> flush privileges;
于 2018-03-11T18:09:08.520 回答
3

关于该主题的大多数答案都已过时;在撰写此答案之前,MySQL 发生了两个重大变化:

1- 用户表中的“密码”字段已替换为“身份验证字符串”列。

2-“密码”加密功能:PASSWORD("of some text") 已弃用。

请参阅此链接以获取更多信息:dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

于 2019-12-09T11:08:14.297 回答
2

当您PASSWORD()在要更改密码的系统上使用 MySQL 时,可能会导致密码以明文形式出现在 MySQL 日志中 [来源]。让他们、他们的备份等与密码一样安全对我来说听起来像是一场噩梦,所以我更喜欢这样做:

  1. 在您的本地机器上,使用您的密码运行它:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
    

    请注意前面的空格,以防止它出现在 bash 历史记录中(对于 Ubuntu 以外的其他发行版,这可能会有所不同 - source)。

  2. 在您的服务器机器上,执行以下命令以更改其 MySQL root 密码(替换myhash为第一个命令打印的密码哈希):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
    
  3. 或者,让我们有点偏执:在您的本地计算机上,清除您的终端屏幕clear并清除您的虚拟终端回滚,以隐藏上面命令中出现的明文密码。

于 2014-03-06T17:48:07.033 回答
2

要更新“root”Mysql 用户密码,您必须记住您需要超级用户权限。如果您有超级用户权限,请尝试以下命令:

MySQL 5.7.6 及更高版本

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 及更早版本

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
于 2018-02-07T13:56:05.340 回答
2

正如密码()函数的mysql文档所说:

这个函数在 MySQL 8.0.11 中被移除。

这几乎使 mysql v8.0.11 及更高版本的所有现有答案无效。

根据 mysql 文档,重置 root 密码的新通用方法如下:

前面的部分提供了专门针对 Windows 和 Unix 以及类 Unix 系统的密码重置说明。或者,在任何平台上,您都可以使用 mysql 客户端重置密码(但这种方法不太安全):

如有必要,停止 MySQL 服务器,然后使用 --skip-grant-tables 选项重新启动它。这使任何人都可以在没有密码和所有权限的情况下进行连接,并禁用帐户管理语句,例如 ALTER USER 和 SET PASSWORD。因为这是不安全的,所以如果使用 --skip-grant-tables 选项启动服务器,它会自动启用 --skip-networking 以防止远程连接。

使用mysql客户端连接MySQL服务器;不需要密码,因为服务器是用 --skip-grant-tables 启动的:

shell> mysql

在 mysql 客户端中,告诉服务器重新加载授权表,以便帐户管理语句起作用:

mysql> FLUSH PRIVILEGES;

然后更改'root'@'localhost' 帐户密码。将密码替换为您要使用的密码。要更改具有不同主机名部分的 root 帐户的密码,请修改说明以使用该主机名。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

您现在应该能够使用新密码以 root 身份连接到 MySQL 服务器。停止服务器并正常重新启动它(没有 --skip-grant-tables 和 --skip-networking 选项)。

于 2018-10-28T10:52:15.273 回答
2

如果您知道“root”用户密码,请使用该凭据登录 mysql。然后执行以下查询来更新密码。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
于 2019-09-18T10:05:58.533 回答
1

phpmyadmin如果您已设置连接而不提供密码或用户名,则可以在本地计算机上解决而不是重置密码。mysql通过starting等检查一下apache。我已经xampp安装在我的本地机器上。所以启动 xampp 将启动所有必要的服务。现在要向http://localhost/phpmyadmin我展示所有的数据库。这确认您已将用户名和密码保存在 phpmyadmin 的配置文件中,该文件可以在phpmyadmin安装位置找到。如果您已经xampp安装了该phpmyadmin文件夹,则可以在xampp安装的根文件夹中找到该文件夹​​。passwordconfig.inc.php文件中搜索单词。在那里你会找到password and username

于 2016-02-25T17:13:02.153 回答
1

如果通过提供的 phpadmin gui 部署在 xampp 上,您可以轻松更改 mysql 密码。

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
于 2016-12-21T04:41:07.737 回答
1

你可以使用这个命令:

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

之后请使用冲洗:

FLUSH PRIVILEGES;
于 2017-01-02T09:40:31.530 回答
1

对于 mysql 5.6,此命令有效,您可以通过向导设置密码:

sudo dpkg-reconfigure mysql-server-5.6
于 2017-05-09T06:13:22.380 回答
1

我不得不在 Ubuntu 16.04.1 LTS 上走这条路。它有点混合了上面的其他一些答案——但没有一个有帮助。我花了一个小时或更长时间尝试从 MySql 网站到 SO 上的所有其他建议,我终于得到了它的使用:

注意:虽然它显示输入用户 root 的密码,但我没有原始密码,所以我只是输入了相同的密码用作新密码。

注意:没有 /var/log/mysqld.log 只有 /var/log/mysql/error.log

还要注意这对我不起作用:
sudo dpkg-reconfigure mysql-server-5.7

也没有:
sudo dpkg-reconfigure --force mysql-server-5.5

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

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

然后:

  1. 杀死当前的mysqld pid
  2. 使用 sudo /usr/sbin/mysqld & 运行 mysqld
  3. 运行 /usr/bin/mysql_secure_installation mysql_secure_installation

    的输出

    root@myServer:~# /usr/bin/mysql_secure_installation

    保护 MySQL 服务器部署。

    输入用户 root 的密码:

    验证密码插件可用于测试密码并提高安全性。它检查密码的强度并允许用户仅设置足够安全的密码。你想设置验证密码插件吗?

    按 y|Y 表示是,任何其他键表示否:否 使用现有的 root 密码。更改root密码?(((按 y|Y 表示是,任何其他键表示否):y

    新密码:

    重新输入新密码:默认情况下,MySQL 安装有一个匿名用户,允许任何人登录 MySQL,而无需为他们创建用户帐户。这仅用于测试,并使安装更顺畅。您应该在进入生产环境之前删除它们。

    移除匿名用户?(按 y|Y 表示是,任何其他键表示否):y 成功。

    通常,应该只允许 root 从 'localhost' 连接。这可确保有人无法从网络中猜测 root 密码。

    远程禁止root登录?(按 y|Y 表示是,任何其他键表示否):y 成功。

    默认情况下,MySQL 带有一个任何人都可以访问的名为“test”的数据库。这也仅用于测试,应在进入生产环境之前将其删除。

    删除测试数据库并访问它?(按 y|Y 表示是,任何其他键表示否):y

    • 删除测试数据库...成功。

    • 正在删除测试数据库的权限...成功。

    重新加载权限表将确保到目前为止所做的所有更改都将立即生效。

    现在重新加载权限表?(按 y|Y 表示是,任何其他键表示否):y 成功。

    全部完成!

于 2018-02-04T00:13:42.083 回答
1

您可以尝试以下一些步骤来重置 mysql 5.7 root 密码:

第一次停止 Mysql 服务

sudo /etc/init.d/mysql stop 

以root身份登录,无需密码 sudo mysqld_safe --skip-grant-tables&

登录 mysql 终端后,您应该需要执行更多命令:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


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

重新启动 mysql 服务器后,如果您仍然遇到错误,您必须访问: Reset MySQL 5.7 root password Ubuntu 16.04

于 2018-03-21T08:27:09.663 回答
1

更改 MySQL 根密码。以更简单的方式

所有这些命令都应该以 root 身份运行。

使用旧密码通过 MySQL 命令行工具登录:

步骤1

mysql -uroot -p"your_old_password"

然后运行以下命令:

第2步

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

方法2(使用上述命令使用旧密码首次登录)

运行以下命令,为当前用户设置密码:

SET PASSWORD = PASSWORD('your_new_password');

上面的命令是针对当前用户的。如果要更改其他用户的密码,可以输入用户名而不是 "root"

于 2019-02-16T12:11:41.270 回答
1

我还没有看到MySQL 8.0 指南推荐的官方步骤,这是唯一对我有用的步骤。以下是这些步骤的摘要。

  1. 如果 MySQL 服务器正在运行,请停止它。在/var/lib/mysql//var/run/mysqld//usr/local/mysql/data/中查找带有服务器进程 ID 的 pid 文件。通常,该文件以 mysqld 或您系统的主机名开头并以 .pid 结尾。在以下命令中替换mysql-data-directory和您刚刚找到的内容:host_name

    $ sudo kill `sudo cat /mysql-data-directory/host_name.pid`
    
  2. 此命令将使用 SQL 语句创建一个文本文件/tmp/mysql-init并使 mysql 用户成为所有者。MyNewPass用您自己的密码替换命令。

    $ echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';" > /tmp/mysql-init && sudo chown mysql /tmp/mysql-init
    
  3. 通过在命令行上运行以下命令来启动 MySQL 服务器。在此之后,密码被更新,您可以使用 再次关闭服务器CTRL+C

    $ sudo mysqld --user=mysql --init-file=/tmp/mysql-init &
    
  4. 使用您的密码删除临时文件:

    $ sudo rm /tmp/mysql-init
    
于 2019-10-14T15:23:36.763 回答
1

1.打开nano/vim创建一个文件,内容如下,并将文件另存为~/mysql-pwd

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';
  1. 停止mysqlsudo systemctl stop mysql
  2. sudo mysqld -init-file=~/mysql-pwd
  3. 重启mysqlsudo systemctl start mysql
  4. 现在登录mysql -u root -p。密码将是您的NEWPASSWORD
于 2021-03-30T11:19:55.173 回答
0

要重置或更改密码,请输入sudo dpkg-reconfigure mysql-server-X.X(XX 是您安装的 mysql 版本,即 5.6、5.7),然后您将提示您必须设置新密码的屏幕,然后在下一步确认密码并稍等片刻。而已。

于 2018-01-22T11:23:14.237 回答
0

设置 MySQL 密码

  1. 停止 MySQL 数据库服务

sudo /etc/init.d/mysql 停止

  1. 创建一个新的mysqld目录

sudo mkdir /var/run/mysqld/

  1. 给mysql用户访问权限

sudo chown mysql /var/run/mysqld/

  1. 以安全模式启动 MySQL...

sudo mysqld_safe --skip-grant-tables &

  1. 无需密码即可登录数据库服务器

sudo mysql -u root

  1. 使用默认的mysql数据库

使用 mysql;

  1. 更改root密码

update user set authentication_string=PASSWORD("New_Passwore_Here") where用户='root';

  1. 保存更改

    刷新特权;出口;

  2. 停止 MySQL 安全模式并启动 MySQL 默认服务

sudo /etc/init.d/mysql 停止

须藤 /etc/init.d/mysql 启动

  1. 使用 root 新密码重新登录 MySQL 数据库

sudo mysql -u root -p

*** 来源:https ://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/

于 2019-08-07T06:06:45.420 回答
-1

更改/重置 MySQL 密码时,上面列出的以下命令没有帮助。我发现进入终端并使用这些命令毫无意义。而是使用命令 sudo stop everything。如果有帮助,请删除 Windows 系统 32。

于 2017-01-14T02:08:57.010 回答