解决Spring Boot 部署到服务器无法连接MySQL 问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了解决Spring Boot 部署到服务器无法连接MySQL 问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1854字,纯文字阅读大概需要3分钟。
内容图文
![解决Spring Boot 部署到服务器无法连接MySQL 问题](/upload/InfoBanner/zyjiaocheng/878/c4aa89f57c2b45daa029b57acff8aecd.jpg)
今天spring boot 项目终于写好了,打算部署在刚买的digital ocean服务器上,从github pull之后,执行:
mvn clean compile package
报错提示:
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.18.jar:8.0.18]
第一感觉是数据库连接的问题,先把application.properties里关于databse的内容全部comment:
#spring.datasource.url=jdbc:mysql://***:3306/db_test?serverTimezone=GMT%2B8
#spring.datasource.username=root
#spring.datasource.password=password
再执行:
mvn spring-boot:run
项目果然能跑起来了,说明就是数据库连接问题。
这个问题太艰难了,出现问题的可能的点很多,网上找了N多资料,有同样问题的同学可以看一下汇总:
这里面第二高赞提到了mysql localhost以外的权限问题
详细步骤参考了digital ocean 官方的解答: Hot to Allow Remote Access to MySQL
我个人的问题就是是MySQL没有开启允许外部网访问, 因为mysql默认只允许127.0.0.1访问
/etc/mysql/mysql.conf.d/mysqld.cnf
. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
. . .
把这里的bind-address 改成* 或者0.0.0.0,再执行:
sudo ufw allow from 允许访问的IP地址 to any port 3306
如果你想允许所有ip都可以访问,可以
sudo ufw allow 3306
当然这样风险就太高了,不建议。
最后重启MySQL:
sudo systemctl restart mysql
再启动spring boot project, 终于成功运行了。
部署问题很难受,debug了一整天。希望大家部署过程顺利~
着陆里斯本 发布了6 篇原创文章 · 获赞 0 · 访问量 4875 私信 关注内容总结
以上是互联网集市为您收集整理的解决Spring Boot 部署到服务器无法连接MySQL 问题全部内容,希望文章能够帮你解决解决Spring Boot 部署到服务器无法连接MySQL 问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。