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

升级Ubuntu后Play Framework连接MySQL8提示root@localhost访问被拒绝

问题引发原因
  • MySQL 8.0版本默认将用户认证插件从旧版的mysql_native_password更换为caching_sha2_password,命令行客户端原生支持该新认证方式,而JDBC连接逻辑默认不兼容,因此会出现命令行可正常登录、Java应用连接被拒的情况。
  • 现有配置中使用的JDBC驱动类com.mysql.jdbc.Driver已被废弃,对MySQL 8.0的兼容性不足,易引发连接异常。
  • MySQL 8.0的JDBC连接URL要求显式指定时区等必填参数,旧版URL格式不符合新版驱动的校验规则,也可能触发权限报错。
解决方案
  1. 调整root用户的认证插件
    登录MySQL命令行,依次执行以下SQL语句,注意将语句中的你的实际密码替换为application.conf中配置的数据库密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的实际密码';
FLUSH PRIVILEGES;
  1. 更新application.conf中的数据库配置,参考配置如下:
db.default.driver=com.mysql.cj.jdbc.Driver
db.default.url="jdbc:mysql://localhost/mydatabase?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
db.default.user=root
db.default.pass="你的实际密码"

可根据实际业务需要调整serverTimezone参数的取值,如GMT+8也可正常使用。
3. 重启Play Framework应用,即可正常连接数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:06:03