在 IntelliJ IDEA 中连接 MySQL 时出现 Access denied for user ‘root‘@ ...

打印 上一主题 下一主题

主题 1898|帖子 1898|积分 5694

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在 IntelliJ IDEA 中连接 MySQL 时出现 Access denied for user 'root'@'localhost' (using password: YES) 错误,通常是由于用户名、暗码或权限设置不精确导致的。以下是具体的排查和解决方法:

1. 检查用户名和暗码

确认用户名和暗码是否精确



  • 确保在 IDEA 中填写的用户名和暗码与 MySQL 的实际设置同等。
  • 默认情况下,MySQL 的 root 用户暗码大概为空,或者是你安装时设置的暗码。
测试连接



  • 利用命令行或 MySQL 客户端(如 MySQL Workbench)测试连接:
    1. mysql -u root -p
    复制代码

    • 输入暗码后,如果能成功登录,说明用户名和暗码精确。


2. 检查 MySQL 用户权限

查看 root 用户的权限


  • 登录 MySQL:
    1. mysql -u root -p
    复制代码
  • 查询 root 用户的权限:
    1. SELECT host, user FROM mysql.user;
    复制代码

    • 确保 root 用户的 host 是 localhost 或 %(答应长途连接)。

修改 root 用户权限


  • 如果 root 用户没有权限,可以重新授权:
    1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
    2. FLUSH PRIVILEGES;
    复制代码

    • 将 your_password 替换为你的暗码。

  • 如果答应长途连接:

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
  2. FLUSH PRIVILEGES;
复制代码

3. 检查 MySQL 设置文件

修改 MySQL 设置文件


  • 找到 MySQL 设置文件:

    • Windows: my.ini(通常位于 C:\ProgramData\MySQL\MySQL Server X.X\)。
    • Linux/macOS: my.cnf(通常位于 /etc/mysql/ 或 /usr/local/mysql/)。

  • 确保设置文件中没有限制 root 用户的访问:
    1. [mysqld]
    2. bind-address = 0.0.0.0  # 允许所有 IP 访问
    3. skip-grant-tables       # 如果需要重置密码,可以临时启用
    复制代码
  • 重启 MySQL 服务:

    • Windows:

      1. net stop MySQL80
      2. net start MySQL80
      复制代码
      Linux/macOS:
      1. sudo systemctl restart mysqld
      复制代码


4. 重置 root 用户暗码

如果忘记 root 用户暗码,可以重置暗码:

  • 停止 MySQL 服务:
    1. sudo systemctl stop mysqld
    复制代码
  • 以安全模式启动 MySQL:
    1. sudo mysqld_safe --skip-grant-tables &
    复制代码
  • 登录 MySQL:
    1. mysql -u root
    复制代码
  • 重置暗码:
    1. USE mysql;
    2. UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
    3. FLUSH PRIVILEGES;
    复制代码
  • 退出并重启 MySQL 服务:
    1. sudo systemctl restart mysqld
    复制代码

5. 检查 IDEA 的数据库设置


  • 打开 IDEA 的 Database 工具窗口。
  • 检查连接设置:

    • Host: localhost 或 127.0.0.1
    • Port: 3306(默认端口)
    • User: root
    • Password: 你的暗码
    • Database: 可选,如果未指定则连接默认数据库。

  • 测试连接:

    • 点击 Test Connection,确保连接成功。


6. 检查防火墙

如果 MySQL 运行在长途服务器上,确保防火墙答应 MySQL 端口(默认 3306)的访问:


  • Linux:
    1. sudo ufw allow 3306/tcp
    复制代码
  • Windows:

    • 在防火墙设置中答应 mysqld.exe 或端口 3306。


7. 其他大概的原因


  • MySQL 版本问题

    • 某些 MySQL 版本(如 8.0+)默认利用 caching_sha2_password 加密方式,大概导致连接问题。
    • 修改加密方式:
      1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
      2. FLUSH PRIVILEGES;
      复制代码

  • IDEA 插件问题

    • 确保已安装并启用了 Database Tools and SQL 插件。


总结

通过以上步调,可以解决 Access denied for user 'root'@'localhost' (using password: YES) 错误。如果问题仍未解决,请检查 MySQL 的错误日志(通常位于 /var/log/mysql/error.log 或 C:\ProgramData\MySQL\MySQL Server X.X\Data\*.err),获取更多具体信息。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表