MySQL数据库忘记密码怎么办

本文详细介绍了在忘记MySQL数据库密码的情况下,如何通过多种方式重置密码,包括跳过权限验证启动服务、使用初始化脚本及mysqladmin工具等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做数据库运维的时候,由于密码设置的比较复杂,又没能很好管理密码,经常会忘记,这个时候怎么办呢?针对这种情况,我们有下面几个解决方案。

环境介绍
操作系统:CenterOS 7.3
数据库:mysql 5.6

修改密码涉及到的相关知识
MySQL有一个mysql的内建数据库,其中有一张user表,这张表里存储着MySQL实例的账号,密码。

    mysql> select user,host,password from mysql.user;
    +------+-----------+-------------------------------------------+
    | user | host      | password                                  |
    +------+-----------+-------------------------------------------+
    | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
    | root | 127.0.0.1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    | root | ::1       | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    |      | localhost |                                           |
    | root | %         | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    +------+-----------+-------------------------------------------+

我们可以通过update语句修改user表的内容而达到修改密码的作用。

解决方法

1、启动MySQL服务跳过权限验证,登录后重置密码
利用操作系统命令关闭数据库。

    [root@mysqltest ~] kill `cat /mysql/data/3306/mysql/mysqld.pid`

在配置文件中mysqld中添加如下内容。

    skip-grant-tables
    skip-networking

启动数据库。

    [root@ligang mysqld]# systemctl start mysqld

利用SQL语句修改密码。

    mysql> update mysql.user set password=password('root123456') where user='root' and host='localhost';
    Query OK, 0 rows affected (0.00 sec)
    Rows matched: 1  Changed: 0  Warnings: 0
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

利用mysqladmin命令关闭数据库。

    [root@ligang mysqld]# mysqladmin -uroot -proot123456 shutdown

将 skip-grant-tables,skip-networking这两个参数从配置文件(/data/mysql/3306/my.cnf)中去掉,并重新启动数据库。

    [root@ligang mysqld]# systemctl start mysqld

2、启动MySQL服务附加参数(–init-file),通过脚本重置密码
此方法与上述方法差不多,只是在启动MySQL的时候,附加上了–init-file参数,使其执行含有密码重置的脚本,达到修改密码的目的。

3、利用mysqladmin工具设置密码
没有密码,设置密码
mysqladmin -uroot password ‘密码’

有密码设置新密码
mysqladmin -uroot password ‘新密码’ -p ‘旧密码’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值