[英]MySQL: How to reset or change the MySQL root password?
如何在 ubuntu 服务器中更改 MySQL root 密码和用户名? 在设置任何更改之前我需要停止 mysql 服务吗?
我也有一个 phpmyadmin 设置,phpmyadmin 会自动更新吗?
在 Ubuntu Linux 上设置/更改/重置 MySQL root 密码。 在您的终端中输入以下行。
sudo /etc/init.d/mysql stop
/var/run/mysqld
不存在,您必须首先创建它: sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
mysqld
配置: sudo mysqld --skip-grant-tables &
mysql -u root mysql
YOURNEWPASSWORD
替换为您的新密码:对于 MySQL < 8.0
UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD') WHERE User = 'root';
FLUSH PRIVILEGES;
如果你的 MySQL 使用新的 auth 插件,你将需要使用: update user set plugin="mysql_native_password" where User='root';
在刷新权限之前。
注意:在某些版本上,如果
password
列不存在,您可能想尝试:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';
注意:此方法不被视为重置密码的最安全方法,但它确实有效。
对于 MySQL >= 8.0
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';
FLUSH PRIVILEGES;
正如@lambart 在评论中指出的那样,您可能需要终止您启动的临时无密码 mysql 进程,即sudo killall -9 mysqld
然后启动普通守护进程: sudo service mysql start
参考:
唯一对我有用的方法是此处描述的方法(我正在运行 ubuntu 14.04)。 为了清楚起见,这些是我遵循的步骤:
sudo vim /etc/mysql/my.cnf
在末尾添加以下行:
[mysqld] 跳过授权表
sudo service mysql restart
mysql -u root
use mysql
select * from mysql.user where user = 'root';
- 查看顶部判断password列是叫password还是authentication_string
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- 从上面使用正确的密码列
FLUSH PRIVILEGES;
exit
sudo vim /etc/mysql/my.cnf
如果您想保持安全标准,请删除在第 2 步中添加的行。
sudo service mysql restart
供参考: https ://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
在 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
什么对我有用(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
我正在分享在 Linux Ubuntu 中重置 MySQL 密码的逐步最终解决方案。
第 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;
首先运行这个命令:
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
而不是auth_socket
之前为 root 帐户设置了密码。 总而言之,要更改您的 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 |
+------------------+-------------------------------------------+-----------------------+-----------+
正如您在授权表中看到的那样,您的根帐户具有mysql_native_password
。 现在你可以退出 MYSQL shell
exit;
就是这样。只是你应该通过sudo service mysql restart
。 现在您可以使用您的密码轻松地以 root 帐户身份登录 mysql。
我遇到了 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;
更改 MySQL root 密码。
此方法将密码暴露给命令行历史记录,这些命令应以 root 身份运行。
通过mysql命令行工具登录:
mysql -uroot -poldpassword
运行此命令:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
要么
运行此命令,为当前用户设置密码(在本例中为“root”):
设置密码 = 密码('新密码');
停止 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 &
5.免密码登录。 mysql -uroot mysql
6.更新root用户的密码。
更新 mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%'; 出口;
关闭 MySQL。 sudo mysqladmin -S /var/run/mysqld/mysqld.sock 关闭
正常启动MySQL服务。 sudo服务mysql启动
如果您想更改 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服务目录。 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
就我而言,此选项有所帮助: https ://stackoverflow.com/a/49610152/13760371
谢谢你,拉胡尔。
除了以下时刻,当我尝试输入命令时:
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
本方案属于MySQL旧版本。 通过socket认证方式登录MySQL,就可以做到。
sudo mysql -u root
然后可以运行以下命令。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
详情可在此处获得。
这是我的解决方案。 我在 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';
对于 Ubuntu 18.04 和 mysql 版本 14.14 Distrib 5.7.22,请按照以下步骤重置 mysql 密码。
sudo systemctl stop mysql
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
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';
UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';
sudo systemctl revert mysql
最后
sudo systemctl restart mysql
现在享受
如果您知道当前密码,则不必停止 mysql 服务器。 打开 ubuntu 终端。 使用以下命令登录mysql:
mysql - username -p
然后输入您的密码。 这将带您进入 mysql 控制台。 在控制台中,键入:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
然后刷新权限使用:
> flush privileges;
然后你就完成了。
你不需要这一切。 只需登录:
mysql -u root -p
然后在mysql>
提示符下修改当前用户的密码:
mysql> set password=password('the_new_password');
mysql> flush privileges;
关于该主题的大多数答案都已过时; 在撰写此答案之前,MySQL 发生了两个主要变化:
1- 用户表中的“密码”字段已替换为“authentication_string”列。
2-“密码”加密功能:不推荐使用 PASSWORD("of some text")。
请参阅此链接以获取更多信息:dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
当您在要更改密码的系统上使用 MySQL 的PASSWORD()
时,它会导致密码以明文形式出现在 MySQL 日志中 [ source ]。 让他们、他们的备份等像密码一样安全对我来说听起来像是噩梦,所以我宁愿按如下方式做:
在您的本地计算机上,使用您的密码运行此命令:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
请注意前面的空格,以防止它出现在 bash 历史记录中(对于 Ubuntu 以外的其他发行版,这可能会有所不同 –来源)。
在您的服务器计算机上,执行以下命令以更改其 MySQL root 密码(将myhash
替换为第一个命令打印的密码哈希值):
mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
或者,让我们有点偏执:在您的本地机器上,使用clear
清除您的终端屏幕并清除您的虚拟终端回滚,以隐藏上面命令中出现的明文密码。
你可以使用这个命令:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
之后请使用冲洗:
FLUSH PRIVILEGES;
要更新“根”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
正如关于password() 函数的 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'账号密码。 将密码替换为您要使用的密码。 要更改具有不同主机名部分的根帐户的密码,请修改说明以使用该主机名。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
您现在应该能够使用新密码以 root 身份连接到 MySQL 服务器。 停止服务器并正常重启(不使用 --skip-grant-tables 和 --skip-networking 选项)。
如果您知道“root”用户密码,请使用该凭据登录到 mysql。 然后执行以下查询来更新密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
1.打开nano/vim创建一个包含以下内容的文件并将文件另存为~/mysql-pwd
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';
sudo systemctl stop mysql
sudo mysqld -init-file=~/mysql-pwd
sudo systemctl start mysql
mysql -u root -p
。 密码将是您的NEWPASSWORD
以下步骤对我有用。 我在 Ubuntu 上使用 MySQL 8.*
sudo systemctl stop mysql sudo systemctl status mysql
编辑 systemd 配置文件,这样你就可以在没有权限检查的情况下访问 MySQL
sudo systemctl edit mysql
复制并粘贴以下 3 行
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
粘贴行后CTRL+0保存然后CTRL+X退出
sudo systemctl daemon-reload sudo systemctl start mysql
5.现在不用密码连接MySQL服务器
sudo mysql -u root
6.通过运行加载授权表
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' 通过 'YourPasswordHere' 用 mysql_native_password 标识;
mysql> 退出
sudo systemctl 还原 mysql
sudo systemctl 守护进程重新加载
sudo systemctl 重启 mysql
现在使用步骤 7 中设置的新密码连接到 mysql
您可以访问此链接为 mysql 8 重置 root 密码以获取更多详细信息。
如果您已将phpmyadmin
设置为在不提供密码或用户名的情况下进行连接,则可以在本地计算机上解决此问题而不是重置密码。 通过启动mysql
、 apache
等来检查这一点。我在本地机器上安装了xampp
。 所以启动 xampp 将启动所有必要的服务。 现在去http://localhost/phpmyadmin
显示所有的数据库。 这确认您已将用户名和密码保存在 phpmyadmin 的配置文件中,该文件可以在phpmyadmin
安装位置找到。 如果您安装了xampp
xampp
的根文件夹中找到phpmyadmin
文件夹。 在config.inc.php
文件中搜索单词password
。 在那里你会找到password
和username
。
如果通过提供的 phpadmin gui 部署在 xampp 上,您可以轻松更改 mysql 密码。
phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
对于 mysql 5.6,此命令有效,您可以通过向导设置密码:
sudo dpkg-reconfigure mysql-server-5.6
我不得不在 Ubuntu 16.04.1 LTS 上走这条路。 它有点混合了上面的一些其他答案 - 但它们都没有帮助。 我花了一个小时或更长时间尝试从 MySql 网站到 SO 上的所有其他建议,我终于得到了它的工作:
注意:虽然它显示 Enter password for user 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
然后:
运行 /usr/bin/mysql_secure_installation
mysql_secure_installation 的输出
root@myServer:~# /usr/bin/mysql_secure_installation
保护 MySQL 服务器部署。
输入用户root的密码:
VALIDATE PASSWORD PLUGIN 可用于测试密码并提高安全性。 它检查密码的强度并允许用户只设置那些足够安全的密码。 您想设置 VALIDATE PASSWORD 插件吗?
按 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 成功。
全部做完!
您可以尝试以下一些步骤来重置 mysql 5.7 root 密码:
停止 Mysql 服务 1st
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 服务器后如果仍然遇到错误,则必须访问: 重置 MySQL 5.7 root 密码 Ubuntu 16.04
更改 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" 。
如何在 ubuntu 服务器中更改 MySQL 根密码和用户名? 在设置任何更改之前是否需要停止 mysql 服务?
我也有一个 phpmyadmin 设置,phpmyadmin 会自动更新吗?
我还没有看到MySQL 8.0 指南推荐的官方步骤,这是唯一对我有用的步骤。 以下是这些步骤的摘要。
如果 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`
此命令将使用 SQL 语句在/tmp/mysql-init
创建一个文本文件,并使 mysql 用户成为所有者。 在命令MyNewPass
替换为您自己的密码。
$ echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';" > /tmp/mysql-init && sudo chown mysql /tmp/mysql-init
通过在命令行上运行以下命令来启动 MySQL 服务器。 在此之后密码更新,您可以再次使用CTRL+C
关闭服务器。
$ sudo mysqld --user=mysql --init-file=/tmp/mysql-init &
使用您的密码删除临时文件:
$ sudo rm /tmp/mysql-init
当更改/重置MySQL密码时,上面列出的以下命令无济于事。 我发现进入终端并使用这些命令毫无意义。 而是使用命令sudo停止所有操作。 如果有帮助,请删除Windows的SYSTEM 32。
要重置或更改密码,请输入sudo dpkg-reconfigure mysql-server-XX
(XX是已安装的mysql版本,即5.6、5.7),然后将提示您必须设置新密码的屏幕,然后在下一步中进行确认密码,请稍等片刻。 而已。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.