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

Ubuntu从18.04升级到20.04后JDBC驱动连接MySQL报错问题求助

Ubuntu从18.04升级到20.04后JDBC驱动连接MySQL报错问题求助

嗨,我之前也碰到过类似的情况,升级Ubuntu版本后MySQL的远程JDBC连接出问题,本地能连但外部客户端不行,给你几个排查和解决的方向,应该能搞定:

  • 检查MySQL的绑定地址设置
    Ubuntu升级后,MySQL的配置可能被重置,默认只绑定了127.0.0.1(仅允许本地访问)。你可以打开MySQL的配置文件(通常是/etc/mysql/mysql.conf.d/mysqld.cnf或者/etc/mysql/my.cnf),找到bind-address这一行,把它改成0.0.0.0(允许所有IP访问)或者你客户端机器的具体IP,然后重启MySQL服务:

    sudo systemctl restart mysql
    
  • 确认MySQL用户的远程访问权限
    你的root用户可能只被授权本地访问,需要给对应的用户开放远程连接权限。登录本地MySQL后执行:

    GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'客户端机器IP' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;
    

    如果想允许该用户从任意IP访问,可以把客户端机器IP换成%。

  • 处理MySQL认证插件兼容性问题
    Ubuntu 20.04默认安装的MySQL版本是8.0,它默认使用caching_sha2_password认证插件,但旧版本的JDBC驱动不支持这个。你可以把用户的认证方式改成mysql_native_password,执行:

    ALTER USER '你的用户名'@'客户端机器IP' IDENTIFIED WITH mysql_native_password BY '你的密码';
    FLUSH PRIVILEGES;
    
  • 检查防火墙设置
    升级后UFW防火墙可能自动开启了,导致3306端口被拦截。你可以开放MySQL的3306端口:

    sudo ufw allow 3306
    

    或者更安全地只允许客户端机器IP访问:

    sudo ufw allow from 客户端机器IP to any port 3306
    
  • 验证JDBC驱动版本
    如果你的JDBC驱动版本比较旧,可能不兼容MySQL 8.0。建议升级到mysql-connector-java 8.0及以上版本,同时注意连接URL里要加上useSSL=false&serverTimezone=UTC这类参数(根据实际情况调整)。

备注:内容来源于stack exchange,提问作者neutrino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:30:27