Digital Ocean部署Spring Boot项目时MariaDB连接被拒绝求助
解决Spring Boot部署到Digital Ocean Droplet后MySQL连接拒绝问题
问题核心
你遇到的SQLNonTransientConnectionException是因为Droplet上的应用尝试连接本地(127.0.0.1)3308端口的MySQL服务,但该服务未正常提供连接能力。
排查与解决步骤
检查Droplet上MySQL服务状态
登录Droplet终端,执行命令确认MySQL是否运行:sudo systemctl status mysql若服务未启动,执行启动命令:
sudo systemctl start mysql如需开机自启,追加:
sudo systemctl enable mysql确认MySQL实际监听端口
查看MySQL当前监听的端口,避免配置端口与实际不符:sudo netstat -tulpn | grep mysql若输出中无3308端口,需修改MySQL配置文件(常见路径为
/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf),找到port字段修改为3308,之后重启服务:sudo systemctl restart mysql验证MySQL本地连接权限
登录MySQL控制台,检查应用所用用户的本地访问权限:mysql -u root -p执行SQL查看用户权限配置:
SELECT user, host FROM mysql.user;若应用用户的
host不是localhost或127.0.0.1,执行授权语句:GRANT ALL PRIVILEGES ON 你的数据库名.* TO '应用用户名'@'localhost' IDENTIFIED BY '用户密码'; FLUSH PRIVILEGES;检查Droplet防火墙规则
确认本地防火墙未拦截3308端口:sudo ufw status若3308端口未开放,添加允许规则:
sudo ufw allow 3308/tcp核对应用数据库配置
确保Droplet上的application.properties/application.yml中数据库配置与本地一致,重点检查连接URL:spring.datasource.url=jdbc:mysql://127.0.0.1:3308/你的数据库名?useSSL=false&serverTimezone=UTC注意:若MySQL并非部署在Droplet本地,需将
127.0.0.1替换为实际MySQL服务器IP,同时确保远程MySQL允许该Droplet的IP访问。
内容的提问来源于stack exchange,提问作者providerZ
相关产品推荐
相关产品推荐

