MySQL是一个广泛使用的关系型数据库管理系统,它是一个重要的开源软件。而在使用MySQL时,我们常常需要使用root账号登录MySQL,但是,如果你忘记了root账号的密码,该怎么办呢?
本文将介绍一些常见的解决方案,让你能够快速地回复 root 账号的访问权限。
方案一:使用mysqladmin命令
mysqladmin是MySQL自带的命令行工具,你可以使用它来修改root密码,具体操作方法如下:
-
打开终端,输入如下命令:
sudo systemctl stop mysql
这个命令将关闭MySQL。之所以先关闭MySQL,是为了方便接下来修改密码。
-
输入如下命令来启用无密码登录:
sudo mysqld_safe --skip-grant-tables &
这个命令将开启MySQL的临时权限,你可以暂时无需密码的访问 MySQL 数据库。
-
输入如下命令连接到 MySQL 数据库:
mysql -uroot
输入完这个命令之后,你将进入到命令行模式。
-
修改root密码:
use mysql;
update user set authentication_string=password('123456') where user='root';
这个命令将数据库中root的密码更改为“123456”,你也可以将这个密码替换成你想要设置的密码。
-
退出 MySQL 命令行模式:
quit
-
重新启动 MySQL:
sudo systemctl start mysql
-
用修改后的密码登录:
mysql -u root -p
这个命令将要求你输入新密码来登录 MySQL。
方案二:使用init脚本
这个方案需要你拥有root权限。你可以使用Linux的init脚本,来重启MySQL并载入 SQL 脚本,以达到修改root密码的目的。
操作步骤如下:
-
停止 MySQL 服务:
sudo /etc/init.d/mysql stop
-
创建包含 SQL 命令的文件:
sudo nano /var/mysql-init
这个命令将在 /var 目录下创建一个 mysql-init 文件,并让你使用 nano 编辑器,输入以下内容:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;上面的命令将 root 的密码更改为“123456”。
-
启用 MySQL 服务:
sudo /etc/init.d/mysql start
在 MySQL 开始启动时,它会自动在执行 SQL 命令文件中的命令,以修改 root 密码。
-
清理出错信息:
sudo rm /var/mysql-init
如果你忘记root密码,使用这两个方案中的任意一个,都可以让你重新获得访问 MySQL 的权限。不过,使用方案一比较推荐,因为它更简单易懂,并且对 MySQL 的正常运行并无负面影响。
当然,为避免忘记密码,你应该建立一个更好的密码管理策略,比如使用密码管理工具存储你的 MySQL 密码,或者定期修改密码以提高安全性。