likes
comments
collection
share

Linux 下忘记MYSQL密码,重置密码操作前言   MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。

作者站长头像
站长
· 阅读数 14

Linux 下忘记MYSQL密码,重置密码操作前言   MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。

前言

  MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。MySQL 密码忘了是一个常见的问题,但不用担心,可以通过一些步骤来重置密码,重置MySQL数据库密码的步骤取决于当前的访问权限和MySQL的版本。下面将详细介绍如何在不同情况下重置MySQL密码。

Linux 下忘记MYSQL密码,重置密码操作前言   MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。

一、重置 ROOT 密码

1.1 具有管理员权限的情况

  如果有超级用户访问权限或可以以root用户身份登录,可以通过停止MySQL服务、启动安全模式、登录MySQL并执行SQL命令来重置密码,可以按照以下步骤重置密码:

  1. 首先,需要停止正在运行的MySQL服务。

    # sudo service mysql stop
    # sudo /etc/init.d/mysql stop
    sudo systemctl stop mysql
    
  2. 以管理员身份启动MySQL安全模式,这样可以跳过密码验证。

    sudo mysqld_safe --skip-grant-tables &
    
  3. 打开另一个命令行窗口,以管理员身份登录MySQL。

    # 无需密码,会直接登入
    mysql -u root
    
  4. 登录后,运行以下SQL命令来重置密码。

    # 刷新权限
    FLUSH PRIVILEGES;
    
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    

    将“新密码”替换为想要设置的新密码。

  5. 退出MySQL命令行窗口,然后停止安全模式的MySQL服务。可以直接搜索进程,然后KILL发送关闭信号。

    sudo killall mysqld_safe
    
    # 如果在本地机器上执行上面命令无法停止安全模式,可以通过杀死进程方式解决
    # 1、列出 mysqld_safe 的进程
    ps aux | grep mysqld_safe
    
    # 2、拿到 PID 全部杀死,应该是第二列,就几位纯数字的,如果不知道可以单独输出 $ ps aux 看一下。
    sudo kill -9 xxx xxx ...
    
  6. 重启MYSQL服务

    # sudo service mysql start
    # sudo /etc/init.d/mysql start
    # sudo systemctl start mysql
    sudo systemctl restart mysql
    
  7. 使用新设置的密码以管理员身份登录MySQL,确保可以成功登录并访问数据库。

     mysql -u root -p
    

1.2 没有管理员权限的情况

  如果没有管理员权限,但仍然需要重置MySQL密码,可以尝试以下方法:

  1. 查找配置文件:在MySQL安装目录下找到 my.cnf 配置文件。该文件通常包含MySQL的配置信息,包括用户名和密码。

  2. 编辑配置文件:使用文本编辑器打开配置文件,并找到 [mysqld] 部分。在 [mysqld] 后面任意一行添加 skip-grant-tables 用来跳过密码验证的过程,然后保存并关闭文件。

  3. 重启MySQL服务:停止正在运行的MySQL服务,然后重新启动它,以使配置更改生效。

    # systemctl 启动的使用这个停止
    sudo systemctl stop mysql
    # systemctl 启动的使用这个重新启动
    sudo systemctl start mysql
    
    
    # mac 本机,可以使用这个或可视化界面停止
    sudo mysql.server stop
    # mac 本机,可以使用这个或可视化界面启动
    sudo mysql.server start
    
  4. 登录MySQL:以任何用户身份登录MySQL,因为跳过了权限验证。

    # 无需密码,会直接登入
    mysql -u root
    
  5. 运行SQL命令来重置密码

    # 刷新权限
    FLUSH PRIVILEGES;
    
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    
    # 刷新权限
    FLUSH PRIVILEGES;
    

    将“新密码”替换为想要设置的新密码。

  6. 恢复配置文件:编辑配置文件,删除之前添加的“skip-grant-tables”行,并保存文件。

  7. 重启MySQL服务:停止MySQL服务,然后再次启动它,以使配置更改生效。

  8. 使用新密码登录:使用新设置的密码登录MySQL,确保可以成功登录并访问数据库。

二、重置普通用户密码

  如果没有超级用户权限,但可以以普通用户身份登录,可以使用以下方法重置密码(前提是该用户有足够的权限来更改其他用户的密码)。

  1. 打开终端或命令提示符窗口,进入MySQL的安装目录。

  2. 输入以下命令登录到MySQL服务器:

    mysql -u 用户名 -p
    

    其中,用户名是MySQL用户名,-p 参数表示需要输入密码。

  3. 输入密码后,按回车键登录到MySQL服务器。

  4. 输入以下命令修改密码:

    ALTER USER '用户名'@'localhost' IDENTIFIED BY '新密码';
    
    # 刷新权限
    FLUSH PRIVILEGES;
    
  5. 修改密码成功后,输入以下命令退出MySQL服务器:

    exit
    

结语

  请根据具体情况选择适当的方法并确保设置的新密码,无论使用哪种方法修改密码,请确保新密码的安全性,避免使用过于简单或容易被猜到的密码。另外,建议定期修改密码,以增加数据库的安全性。如果不确定自己的MySQL版本,可以使用 mysql --versionmysql -V来 检查。无论哪种情况,重置MySQL密码后,请务必妥善保管新密码,并确保其他具有访问权限的用户也知道新密码。

Linux 下忘记MYSQL密码,重置密码操作前言   MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。

转载自:https://juejin.cn/post/7393185003205525542
评论
请登录