Spring Boot部署AWS EC2后卡在HikariPool-1 - Starting问题求助
Spring Boot部署AWS EC2 Ubuntu实例卡在HikariPool启动阶段的排查方案
本地运行正常,EC2实例上卡在HikariPool-1 - Starting...,核心问题基本出在数据库连接链路的配置、权限或服务状态上,和启动速度无关。按以下步骤逐一排查:
1. 确认EC2上的MySQL服务是否正常运行
执行命令检查服务状态:
sudo systemctl status mysql
- 如果服务未启动,启动并设置开机自启:
sudo systemctl start mysql sudo systemctl enable mysql - 如果未安装MySQL,先完成安装:
sudo apt update && sudo apt install mysql-server
2. 验证MySQL本地连接可用性
直接用命令行尝试登录MySQL,确认账号、密码和数据库存在:
mysql -u root -p
输入配置文件中的密码后,执行命令切换到目标数据库:
use comics;
- 如果登录失败,优先排查root用户的密码正确性,或重置密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;
3. 检查MySQL绑定地址配置
编辑MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address项,确保值为127.0.0.1(对应你配置的localhost连接),修改后重启MySQL:
sudo systemctl restart mysql
4. 排查本地防火墙限制
Ubuntu默认的ufw防火墙可能会限制本地MySQL连接,检查防火墙状态:
sudo ufw status
如果防火墙开启,添加本地MySQL连接允许规则:
sudo ufw allow in from 127.0.0.1 to any port 3306
5. 开启Hikari连接池详细日志定位错误
在application.properties中添加日志配置,获取更具体的连接失败信息:
logging.level.com.zaxxer.hikari=DEBUG logging.level.org.hibernate.engine.jdbc.env.internal=DEBUG
重启应用后,查看日志输出,通常会明确显示连接超时、认证失败等具体原因。
6. 检查应用运行用户的权限
如果用非root用户运行Spring Boot应用,需确保该用户有权限访问MySQL的socket文件(默认路径/var/run/mysqld/mysqld.sock):
将应用运行用户加入mysql用户组:
sudo usermod -aG mysql 你的用户名
退出当前会话重新登录后,再启动应用。
内容的提问来源于stack exchange,提问作者AxlTfr
相关产品推荐
相关产品推荐

