删除之前增加的skip-grant-tables,依旧无密码登录
时间: 2023-09-28 12:13:32 浏览: 46
如果您在 MySQL 中使用了 skip-grant-tables 选项,并且在执行了 FLUSH PRIVILEGES 命令后仍然可以无需密码登录,则可能是由于您在 MySQL 中的 root 用户的密码已被删除。在这种情况下,您可以通过以下步骤来修复该问题:
1. 停止 MySQL 服务。
2. 找到 MySQL 配置文件 my.cnf(或 my.ini),打开它并添加以下行:
skip-grant-tables=0
skip-networking
3. 保存并关闭配置文件。
4. 重新启动 MySQL 服务。
5. 使用以下命令登录到 MySQL:
mysql -u root
6. 运行以下命令来更改 root 用户的密码:
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
7. 运行以下命令刷新权限表并退出 MySQL:
mysql> FLUSH PRIVILEGES;
mysql> exit;
8. 停止 MySQL 服务。
9. 打开 MySQL 配置文件 my.cnf(或 my.ini),删除添加的行:
skip-grant-tables=0
skip-networking
10. 保存并关闭配置文件。
11. 重新启动 MySQL 服务。
现在您应该可以使用新密码登录到 MySQL 了。
相关问题
mysqld_safe --skip-grant-tables 重置密码
命令mysqld_safe --skip-grant-tables可以启动MySQL服务器并跳过权限验证,这样可以允许任何人以超级管理员的身份登录MySQL服务器。在这种情况下,你可以通过以下步骤来重置MySQL密码:
1. 停止MySQL服务:sudo service mysql stop
2. 使用命令mysqld_safe --skip-grant-tables启动MySQL服务器:sudo mysqld_safe --skip-grant-tables &
3. 连接到MySQL服务器:mysql -u root
4. 使用以下命令更新root用户的密码:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
注意:将new_password替换为您要设置的新密码。
5. 刷新MySQL权限表:FLUSH PRIVILEGES;
6. 退出MySQL:exit;
7. 停止MySQL服务器:sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
8. 启动MySQL服务:sudo service mysql start
现在,您可以使用新密码以root用户身份登录MySQL服务器。
删除之前增加的skip-grant-tables,用mysql命令也可以登陆
如果您在 MySQL 中使用了 skip-grant-tables 选项,并且在执行了 FLUSH PRIVILEGES 命令后仍然可以无需密码登录,那么可能是因为您没有正确地执行 FLUSH PRIVILEGES 命令。在这种情况下,您可以按照以下步骤来修复该问题:
1. 打开 MySQL 客户端并登录到 MySQL。
2. 运行以下命令,以确保 skip-grant-tables 选项已关闭:
mysql> FLUSH PRIVILEGES;
3. 退出 MySQL 客户端。
4. 停止 MySQL 服务。
5. 找到 MySQL 配置文件 my.cnf(或 my.ini),打开它并删除以下行:
skip-grant-tables
6. 保存并关闭配置文件。
7. 重新启动 MySQL 服务。
现在您应该可以使用 MySQL 命令并输入密码来登录到 MySQL 了。