1. 密码找回的前提条件
在忘记MySQL的密码之前,有几个前提条件需要满足:
(1)你必须有root用户的访问权限。
(2)你需要登录到Linux服务器。
2. 使用密码找回方法之一:使用mysql_secure_installation脚本
mysql_secure_installation是MySQL提供的一个脚本,通过它你可以改变数据库密码。下面是使用该脚本找回密码的步骤:
(1)在Linux命令行中以root用户身份运行以下命令:
sudo mysql_secure_installation
(2)根据提示输入root密码或者按回车键。
如果你没有设置root密码,直接按回车键即可。
(3)选择是否设置root密码:
脚本会要求你选择是否为MySQL的root用户设置一个密码。如果你想设置一个新密码,按Y键并按照提示进行操作。如果你想保持密码不变,按N键。
(4)选择是否删除匿名用户:
脚本会要求你选择是否删除MySQL的匿名用户。如果你想删除匿名用户,按Y键。如果你想保留匿名用户,按N键。
(5)选择是否禁用root用户远程登录:
脚本会要求你选择是否禁用MySQL的root用户通过远程连接登录数据库。如果你想禁用远程登录,按Y键。如果你想允许远程登录,按N键。
(6)选择是否删除测试数据库:
脚本会要求你选择是否删除MySQL的测试数据库。如果你想删除测试数据库,按Y键。如果你想保留测试数据库,按N键。
(7)选择是否重新加载权限表:
脚本会要求你选择是否重新加载MySQL的权限表。选择Y键并按回车键,脚本将会重新加载权限表。
注意:使用该方法找回密码的前提是你必须有root用户的访问权限。
参考链接:https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
3. 使用密码找回方法之二:通过修改MySQL配置文件
另一种找回MySQL密码的方法是通过修改MySQL的配置文件。下面是具体的步骤:
(1)登录到Linux服务器,打开MySQL的配置文件my.cnf:
sudo vi /etc/mysql/my.cnf
(2)在文件中找到[mysqld]部分,并在其下面添加一行skip-grant-tables:
[mysqld]
skip-grant-tables
(3)保存文件并退出vi编辑器。
(4)重启MySQL服务:
sudo systemctl restart mysql
(5)以root用户登录MySQL:
mysql -u root
(6)修改root用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
将new_password替换为你想设置的新密码。
(7)执行以下命令刷新权限表:
FLUSH PRIVILEGES;
(8)退出MySQL:
EXIT;
(9)撤销对MySQL配置文件的修改:
sudo vi /etc/mysql/my.cnf
删除添加的skip-grant-tables行。
(10)保存文件并退出vi编辑器。
(11)再次重启MySQL服务:
sudo systemctl restart mysql
注意:使用该方法找回密码需要在Linux服务器上进行操作,所以需要对服务器有一定的了解。
参考链接:https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
总结
通过mysql_secure_installation脚本和修改MySQL配置文件,你可以快速找回Linux下MySQL的密码。脚本方法适用于用户具有root用户的访问权限的情况,而修改配置文件方法适用于用户具有对服务器操作的权限的情况。在进行密码找回操作之前,请确保你已经备份了重要的数据,以免出现意外情况导致数据丢失。