如何在VPS上部署两个Spring Boot项目并实现MySQL数据库共享?
问题解答:Spring Boot多应用在VPS共享MySQL数据库
当然可以实现,和本地共享数据库的逻辑本质一致,核心是让两个Spring Boot应用都能正确连接到同一台MySQL服务。以下是具体操作步骤:
确保MySQL服务的可访问性
如果MySQL与两个Spring Boot应用部署在同一台VPS上,直接用localhost或127.0.0.1作为数据库地址即可;若MySQL部署在其他服务器(包括本地),需调整MySQL配置:- 编辑MySQL配置文件(通常为
/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),将bind-address设置为VPS公网IP或0.0.0.0(允许所有IP访问,需注意安全)。 - 重启MySQL服务:
sudo systemctl restart mysql。 - 在MySQL中创建允许远程访问的用户,示例命令:
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'%'; FLUSH PRIVILEGES;
- 编辑MySQL配置文件(通常为
统一配置Spring Boot应用的数据库连接
两个项目的application.properties或application.yml中,配置相同的数据库连接信息:
以application.properties为例:spring.datasource.url=jdbc:mysql://[MySQL的IP地址]:3306/your_database?useSSL=false&serverTimezone=UTC spring.datasource.username=your_user spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver替换
[MySQL的IP地址]:若与应用同VPS则填localhost,否则填MySQL所在服务器的公网IP。部署与验证
- 将两个Spring Boot应用打包为JAR包(执行
mvn clean package),上传至VPS。 - 分别启动应用(例如
java -jar app1.jar、java -jar app2.jar,建议用systemd配置后台运行)。 - 测试数据库交互:比如用一个应用写入数据,另一个应用读取,确认数据一致即可验证共享生效。
- 将两个Spring Boot应用打包为JAR包(执行
安全提示
- 避免使用
root用户远程访问MySQL,创建权限受限的专用用户。 - 若MySQL暴露在公网,建议开启SSL加密连接,修改
spring.datasource.url中的useSSL=true并配置对应证书。 - 配置VPS防火墙,仅允许应用所在IP或信任IP访问3306端口。
- 避免使用
内容的提问来源于stack exchange,提问作者J Maine
相关产品推荐
相关产品推荐

