Linux中MySQL忘记密码真么办
方法一:使用mysqladmin重置密码
这种方法适用于在MySQL服务器上拥有root账户的管理员权限。
1、停止MySQL服务
$ sudo systemctl stop mysql
2、使用mysqld_safe命令启动MySQL服务,并跳过权限检查
$ sudo mysqld_safe --skip-grant-tables &
3、连接到MySQL服务器,并使用mysqladmin命令重置密码
$ sudo mysql -uroot -p
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
这里,‘12345678’ 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。
4、退出MySQL服务器,并停止MySQL服务
mysql> exit
$ sudo systemctl stop mysql
5、启动MySQL服务并重启服务器
$ sudo systemctl start mysql
$ sudo reboot
这样就可以用新密码登录MySQL了
方法二:使用mysqld重新设置root密码
这种方法适用于在MySQL服务器上没有root管理员权限,但具有物理访问权限。
1、停止MySQL服务
$ sudo systemctl stop mysql
2、使用mysqld_safe命令启动MySQL服务,并跳过权限检查
$ sudo mysqld_safe --skip-grant-tables &
3、连接到MySQL服务器,并创建一个新的临时用户,该用户拥有root权限
$ mysql -uroot -p
mysql> FLUSH PRIVILEGES;
mysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY '12345678';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;
mysql> exit
4、重新启动MySQL服务,并使用新的临时root用户登录MySQL服务器
$ sudo systemctl start mysql
$ mysql -utemp_root -p
5、使用ALTER命令修改root用户密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
这里,‘12345678’ 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。
6、退出MySQL服务器,并停止MySQL服务
mysql> exit
$ sudo systemctl stop mysql
7、删除临时用户
$ sudo mysqld_safe --skip-grant-tables &
$ mysql -uroot -p
mysql> FLUSH PRIVILEGES;
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost';
mysql> DROP USER 'temp_root'@'localhost';
mysql> exit
8、重新启动MySQL服务并重启服务器
$ sudo systemctl start mysql
$ sudo reboot
这样就可以用新密码登录MySQL了
方法三:使用MySQL安全性模式重置密码
1、停止MySQL服务
$ sudo systemctl stop mysql
2、启动MySQL安全性模式
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
3、使用新的命令行终端连接到MySQL服务器
$ mysql -uroot -p
4、修改root用户密码
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
这里,‘12345678’ 是您要设置的新密码,您可以根据需要进行修改。此命令将修改root用户在本地MySQL服务器上的密码。
5、退出MySQL服务器
mysql> exit
6、停止MySQL安全性模式
$ sudo killall mysqld_safe
7、重新启动MySQL服务并重启服务器
$ sudo systemctl start mysql
$ sudo reboot
这样就可以用新密码登录MySQL了