开发者社区 问答 正文

“访问被拒绝”密码yes

image.png 输入密码提示“访问被拒绝”密码yes,在/etc/my.cnf下的[mysqd]节点添加 “skip-grant-tables”进行修改密码,修改完成,使用修改完成后的密码还是提示“访问被拒绝”密码yes

展开
收起
游客nndehi2sckkqa 2021-06-17 18:01:12 647 分享 版权
阿里云 AI 助理回答

遇到您描述的问题,可能是由于在修改MySQL密码后没有正确地重新启用权限检查导致的。按照您的操作,通过添加skip-grant-tables跳过了权限验证来修改密码,但之后忘记移除这一设置,使得MySQL仍然不执行权限检查。请按照以下步骤尝试解决:

  1. 停止MySQL服务: 首先,确保MySQL服务是停止状态,以便进行配置更改。根据您的操作系统,命令可能为 sudo systemctl stop mysqlsudo service mysql stop

  2. 编辑my.cnf配置文件: 打开 /etc/my.cnf 文件(或您系统中对应的MySQL配置文件),找到 [mysqld] 节点下之前添加的 skip-grant-tables 行,将这一行注释掉或者删除。保存并关闭文件。

  3. 重启MySQL服务: 重新启动MySQL服务,让配置生效。使用命令如 sudo systemctl start mysqlsudo service mysql start

  4. 测试新密码: 现在,尝试使用您修改后的密码登录MySQL。命令示例为 mysql -u 用户名 -p,然后按提示输入新密码。如果密码正确且MySQL已正常启用权限检查,这次应该能够成功登录。

  5. 检查用户权限: 如果登录依然失败,可能需要检查该用户在MySQL中的权限是否正确设置。可以尝试以一个具有足够权限的账户登录MySQL,然后运行如下命令检查特定用户的权限:

    USE mysql;
    SELECT User, Host, Password FROM user WHERE User='用户名';
    

    确认该用户记录中的密码字段与您设置的新密码哈希值匹配,并且Host列允许从当前访问的IP或'%'(代表任何主机)连接。

  6. 重置密码的备选方案: 如果上述步骤仍无法解决问题,考虑使用MySQL的安全模式重置密码。这通常涉及在启动时指定 --init-file 参数,通过一个初始化脚本设置新密码。具体操作较为复杂,建议查阅官方文档或在必要时寻求专业帮助。

请按照上述步骤操作,注意每一步骤的执行结果,以及在整个过程中保持对系统安全性的关注。如果问题依旧,可能还需检查服务器的防火墙设置或SELinux策略等其他潜在因素。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: