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

Java气象采集应用写入数据库报Access denied访问被拒绝如何处理

  • 检查MySQL weather用户的主机权限
    MySQL用户的身份由用户名@登录主机共同确认,默认%通配符不包含localhost本地连接,执行以下SQL确认用户存在:
    SELECT user,host FROM mysql.user WHERE user='weather';
    
    若查询结果中没有host为localhost的记录,执行以下命令创建用户并授权:
    CREATE USER 'weather'@'localhost' IDENTIFIED BY 'weather';
    GRANT ALL PRIVILEGES ON weather.* TO 'weather'@'localhost';
    FLUSH PRIVILEGES;
    
  • 验证账号密码正确性
    使用命令行工具测试本地登录,确认密码匹配:
    mysql -uweather -pweather -h localhost weather
    
    若登录失败,重置weather@localhost用户的密码:
    ALTER USER 'weather'@'localhost' IDENTIFIED BY 'weather';
    
  • 修正JDBC配置项
    你当前使用的com.mysql.cj.jdbc.Driver是MySQL 8.0+的官方驱动,存在必填参数要求,且不推荐将账号密码直接写在URL中,可调整配置如下:
    datastore.type=jdbc
    datastore.name=weather
    datastore.jdbc.driver=com.mysql.cj.jdbc.Driver
    datastore.jdbc.url=jdbc:mysql://localhost:3306/weather?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    datastore.jdbc.user=weather
    datastore.jdbc.password=weather
    
    其中serverTimezone参数为cj驱动必填项,需根据你所在时区调整;allowPublicKeyRetrieval用于兼容MySQL 8.0默认的caching_sha2_password加密插件。
  • 检查版本匹配关系
    确认项目依赖的mysql-connector-java版本与你部署的MySQL服务版本兼容:
    • MySQL 5.x 服务对应 5.x 版本驱动,驱动类需改为com.mysql.jdbc.Driver
    • MySQL 8.x 服务对应 8.x 版本驱动,使用现有cj驱动类即可
  • 检查本地网络与服务状态
    确认MySQL服务正常运行,3306端口正常监听,本地防火墙未拦截127.0.0.1的3306端口请求。

内容的提问来源于stack exchange,提问作者Saverio Guzzo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:45:03