You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Java代码遇MySQL访问拒绝异常,已加驱动包该如何解决?

解决MySQL连接权限异常的操作步骤

针对你遇到的Access denied for user 'root'@'localhost' (using password: NO)异常,在已添加MySQL Connector驱动的前提下,可按以下步骤排查解决:

  • 检查JDBC连接配置
    确认代码中的连接参数是否正确传入了密码:

    • 若使用URL参数拼接,确保连接串包含密码信息,示例:
      String url = "jdbc:mysql://localhost:3306/your_db_name?user=root&password=your_root_pwd";
      Connection conn = DriverManager.getConnection(url);
      
    • 若使用重载方法传参,确保密码参数不为空,示例:
      String url = "jdbc:mysql://localhost:3306/your_db_name";
      Connection conn = DriverManager.getConnection(url, "root", "your_root_pwd");
      

    避免出现未传递密码或密码参数为空的情况。

  • 验证MySQL root用户的密码与访问权限

    1. 打开MySQL命令行客户端,尝试用mysql -u root -p登录,输入密码后能正常进入则说明密码有效;若无法登录,需重置root密码:
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
      FLUSH PRIVILEGES;
      
    2. 检查root用户的访问权限,执行以下SQL:
      SELECT user, host FROM mysql.user WHERE user = 'root';
      
      确保存在root@localhost的用户记录,若缺失则创建该用户并授权:
      CREATE USER 'root'@'localhost' IDENTIFIED BY 'your_password';
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
      FLUSH PRIVILEGES;
      
  • 确认MySQL服务状态
    确保本地MySQL服务处于运行状态:

    • Windows:打开「服务」面板,找到MySQL服务并确认其状态为「正在运行」
    • Linux:执行命令systemctl status mysql,查看服务是否正常运行,若未启动则执行systemctl start mysql
  • 排查端口与防火墙问题
    确认MySQL默认端口3306未被其他程序占用,且本地防火墙未拦截该端口的连接请求。

内容的提问来源于stack exchange,提问作者M.H.B. Vamsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:27:18