作为一名 linux 服务器管理员,你肯定不止一次遇到了 mysql 数据库密码忘记的情况。当你需要管理或修改 mysql 数据库时,却突然发现自己无法登录进去,或者是之前设置的密码已经不再适用。这时候,不必慌张,本文将为你介绍几种从 linux 系统中找回 mysql 数据库密码的方法。
方法一:使用排错模式重置密码
mysql 提供了一种特殊的排错模式(troubleshooting mode),该模式可以在忘记密码时重置 mysql 的 root 用户密码。
步骤如下:
关闭 mysql 服务:$ systemctl stop mysqld
启动 mysql 服务并加入排错模式:$ mysqld_safe --skip-grant-tables &
连接 mysql 服务:$ mysql -u root
执行以下命令重置 root 用户密码:> use mysql;> update user set password=password("new_password") where user='root';> flush privileges;> quit
关闭 mysql 服务,然后重新启动:$ systemctl stop mysqld$ systemctl start mysqld
之后,尝试使用新的密码登录 mysql。
方法二:使用 linux 系统账户重置密码
如果你在创建 mysql 用户时使用的是系统用户并且你已经记得了该用户的密码,那么你可以使用这个用户来登录并修改 mysql 用户的密码。
步骤如下:
使用系统账户登录 linux 系统;打开命令行终端并输入以下命令:$ mysql -u user_name -p
其中,user_name 为你需要重置密码的 mysql 用户名。
输入 mysql 用户的密码并回车;使用以下语句更改密码(将 new_password 替换为你自己的密码):> set password for 'user_name'@'localhost' = password('new_password');
输入以下命令使设置生效:> flush privileges;
退出 mysql 终端:> quit
方法三:通过配置文件修改密码
如果你知道 mysql 的 root 用户的密码,那么你可以直接修改配置文件,然后重启 mysql 服务。
步骤如下:
使用 vi 编辑 mysql 的配置文件,该文件通常在 /etc/my.cnf 或者 /etc/mysql/my.cnf:$ sudo vi /etc/my.cnf
在文件中找到一个类似于以下内容的段落:[mysqld]
在这个段落的末尾添加以下内容:skip-grant-tables
保存并退出 vi 编辑器;重启 mysql 服务:$ sudo systemctl restart mysqld
使用以下语句更新密码(将 new_password 替换为你自己的密码):$ mysql -u root> use mysql;> update user set password=password("new_password") where user='root';> flush privileges;> quit
删除 /etc/my.cnf 文件中添加的 skip-grant-tables 行;重启 mysql 服务:$ sudo systemctl restart mysqld
总结
无论是因为忘记密码、错误操作、或者其他原因导致 mysql 数据库无法访问,不要惊慌失措,以上三种方法都可以帮助你解决问题。如果你遇到了类似的情况,请尝试按照以上步骤操作,找回 mysql 数据库密码。
以上就是mysql密码忘记 linux的详细内容。