如何恢复root密码
在使用Linux系统和MySQL数据库时,我们可能会遇到忘记root密码的情况。这时,如果没有办法找回密码,就只能重置密码或重新安装系统。然而,这些做法都有一定的风险,可能导致数据丢失或操作不当而影响系统稳定性。在此,我们将介绍两种安全、简便且可行的方法来恢复MySQL root密码。
方法一:使用mysqld_safe启动MySQL
如果我们没有设置跳过认证方式,并且MySQL安装的版本为5.7.6及以上时,可以通过mysqld_safe启动MySQL,并且跳过了密码认证。接下来的步骤如下:
1.停掉MySQL服务。
使用以下命令停止MySQL服务:
2.使用mysqld_safe启动MySQL。
使用以下命令启动mysqld_safe,并跳过密码校验:
3.验证MySQL是否已经启动。
使用以下命令验证mysqld_safe已经启动:
如果已经启动,则输出如下:
root 3810 1 0 09:52 pts/0 00:00:00 mysqld_safe --skip-grant-tables
mysql 3962 3810 0 09:52 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --pid-file=/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
其中,“--skip-grant-tables”就是跳过密码认证的命令。
4.登录MySQL并修改密码。
使用以下命令登录MySQL:
如果出现以下提示:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
则表示跳过认证成功。详情可见错误代码意义。
使用以下命令修改密码:
mysql> update mysql.user set authentication_string=password('new_password') where User='root' and Host='localhost';
mysql> flush privileges;
mysql> quit
在修改密码时,需要把“new_password”替换成你想要的新密码。
5.停止mysqld_safe。
使用以下命令停止mysqld_safe:
6.使用新密码登录MySQL。
使用以下命令登录MySQL:
当出现以下提示时,即表示修改成功:
Enter password:(输入新密码即可登录)
方法二:使用mysql_config_editor工具
如果我们有mysql_config_editor工具,则可以通过该工具来修改密码。mysql_config_editor是MySQL 5.6及以上版本中新增的一个命令行实用程序。使用mysql_config_editor可以管理MySQL凭证文件和组,以及加密和解密凭证信息。以下是具体步骤:
1.启动mysql_config_editor。
使用以下命令启动mysql_config_editor:
这里的“local”指的是这个凭证组的名字,可以根据自己的喜好更改。
2.输入新密码。
在执行上一步命令后,终端会等待输入密码。只需输入新密码即可。
3.验证新密码是否生效。
使用以下命令验证密码是否成功修改:
如果可以正常显示user和host信息,则表示修改成功。
总结
以上就是恢复MySQL root密码的两种方法。通过这两种方法,我们可以简单、快速地解决MySQL root密码丢失的问题。
需要注意的是,在恢复密码之后,为了系统的安全性,我们需要更改root密码,并进行加强设置。同时,我们还需要避免简单密码、重复使用密码等安全隐患。这样,就能确保我们的数据和系统的完整性和安全性。
以上是linux mysql 忘记root的详细内容。更多信息请关注PHP中文网其他相关文章!