忘记MySQL密码怎么办(Linux)?

当我们忘记了MySQL的密码时,该怎么样进入并重新设置密码呢?

请添加图片描述

1、停止mysql进程的运行

service mysqld stop

2、修改配置文件 /etc/my.cnf

vim /etc/my.cnf

skip-grant-tables 配置,保存

用了 skip-grant-tables 参数后,MySQL 将会跳过用户权限验证,直接启动数据库服务。这个选项的主要作用是绕过密码验证,允许无需密码访问数据库。

在这里插入图片描述

3、再次登录MySQL后,则可以免密登录

请添加图片描述

4、刷新权限

使用flush privilege刷新权限

flush privilege 命令的作用是重新加载授权表并使新的权限更改生效。在正常情况下,MySQL 会将用户权限存储在某个系统表中(如 mysql.user 表),并在用户登录或权限更改时加载和验证这些权限。但是,当使用 skip-grant-tables 参数绕过验证后,MySQL 将不再加载或验证这些权限,而是允许所有操作。
通过执行 FLUSH PRIVILEGES 命令,MySQL 会重新加载授权表,开始验证用户权限,并应用最新的权限更改。这样可以防止任何不受欢迎的更改被持续应用,并将数据库恢复为正常的安全状态。

请使用添加图片描述

5、修改密码

set password for ‘用户名’@‘地址’ = ‘新的密码’

6、删除配置文件中的免密登录

删除skip-grant-tables配置

7、重启MySQL

systemctl restart mysqld
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是5种Linux忘记MySQL密码找回方法: 1.使用--skip-grant-tables选项重置密码 ```shell # 停止MySQL服务 /etc/init.d/mysql stop # 以跳过权限验证的方式启动MySQL服务 mysqld_safe --skip-grant-tables & # 以root用户身份登录MySQL mysql -u root # 切换到mysql数据库 use mysql; # 更新root用户的密码 update user set password=PASSWORD("new_password") where User='root'; # 刷新权限 flush privileges; # 退出MySQL quit; # 重启MySQL服务 /etc/init.d/mysql restart ``` 2.使用mysqladmin重置密码 ```shell # 停止MySQL服务 /etc/init.d/mysql stop # 以跳过权限验证的方式启动MySQL服务 mysqld_safe --skip-grant-tables & # 重置root用户的密码 mysqladmin -u root password "new_password" # 重启MySQL服务 /etc/init.d/mysql restart ``` 3.使用mysqld_safe启动MySQL服务并跳过权限验证 ```shell # 停止MySQL服务 /etc/init.d/mysql stop # 以跳过权限验证的方式启动MySQL服务 mysqld_safe --skip-grant-tables & # 以root用户身份登录MySQL mysql -u root # 切换到mysql数据库 use mysql; # 更新root用户的密码 update user set password=PASSWORD("new_password") where User='root'; # 刷新权限 flush privileges; # 退出MySQL quit; # 重启MySQL服务 /etc/init.d/mysql restart ``` 4.使用init-file选项重置密码 ```shell # 创建一个文件,例如reset.sql,内容如下 UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; # 停止MySQL服务 /etc/init.d/mysql stop # 以指定文件的方式启动MySQL服务 mysqld_safe --init-file=/path/to/reset.sql & # 重启MySQL服务 /etc/init.d/mysql restart ``` 5.使用skip-grant-tables选项启动MySQL服务并创建新用户 ```shell # 停止MySQL服务 /etc/init.d/mysql stop # 以跳过权限验证的方式启动MySQL服务 mysqld_safe --skip-grant-tables & # 以root用户身份登录MySQL mysql -u root # 切换到mysql数据库 use mysql; # 创建新用户 CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'new_password'; # 授权新用户 GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' WITH GRANT OPTION; # 刷新权限 flush privileges; # 退出MySQL quit; # 重启MySQL服务 /etc/init.d/mysql restart ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值