找回丢失的MySQL root用户密码

优质
小牛编辑
127浏览
2023-12-01

启动修改丢失的MySQL单实例root的密码方式

首先停止MySQL进程

[root@localhost ~]# /etc/init.d/mysqld stop
Shutting down MySQL.       [确定]

使用--skip-grant-tables参数启动MySQL,忽略授权登陆验证,如下

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql &
[root@localhost ~]# mysql #这里直接使用mysql登录,然后再使用上面的方法修改用户密码
[root@localhost ~]# /usr/local/mysql/bin/mysqladmin shutdown -uroot -p  # 使用mysqladmin关闭mysqld进程
Enter password:
[root@localhost ~]# service mysqld start # 再次重新登录

多实例MySQL启动修改用户root丢失密码的方法

  • 关闭MySQL
killall mysqld
或者
/user/local/mysql/bin/mysqladmin -uroot -p shutdown -S /usr/local/mysql/data/3306/mysql.sock
  • 启动时加额外的配置文件my.cnf和 --skip-grant-tables参数
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf --skip-grant-table &
  • 登录并修改密码
mysql -S /usr/local/mysql/data/3306/mysql.sock # 无密码登录MySQL
mysql> update mysql.user set password=password('aaaaaa') where user='root' and host="localhost";
mysql> flush privileges;
  • 关闭进程并重新开启进程进行测试修改结果
[root@localhost ~]# mysqladmin shutdown -S /usr/local/mysql/data/3306/mysql.sock -uroot -p 
[root@localhost ~]# /usr/local/mysql/data/3306/mysqld start
Starting MySQL...
mysql -S /data/3306/mysql.sock  -uroot -p