使用宝塔部署springboot后报错com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
时间: 2025-02-20 11:16:29 浏览: 376
### Spring Boot 应用在宝塔面板部署后与 MySQL 通信失败解决方案
#### 配置文件设置
对于 `spring.datasource` 的配置项,确保其正确无误。具体来说:
- **驱动类名**:应指定为 `com.mysql.cj.jdbc.Driver`。
- **数据源 URL**:需包含 IP 地址、端口号以及数据库名称,并附加必要的参数如字符集编码等。例如 `jdbc:mysql://your_ip:your_port/your_db_name?useUnicode=true&useSSL=false&serverTimezone=GMT%2B8&characterEncoding=UTF-8`[^4]。
```properties
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://your_ip:your_port/your_db_name?useUnicode=true&useSSL=false&serverTimezone=GMT%2B8&characterEncoding=UTF-8
spring.datasource.username=你的用户名
spring.datasource.password=这里是你的密码
```
#### 数据库连接池配置优化
适当调整 HikariCP 连接池的相关属性可以提高稳定性并减少超时错误的发生概率。比如最大活跃数 (`maximumPoolSize`) 和最小闲置数量 (`minimumIdle`) 可依据实际情况设定;同时还可以通过修改等待获取连接的最大时间(`connectionTimeout`)来适应网络状况较差的情况下的需求[^1]。
```yaml
spring:
datasource:
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 30000 # 单位毫秒
```
#### 权限验证问题排查
当遇到访问被拒绝的提示时,可能是由于远程主机地址未授权给该用户造成的。此时需要登录到服务器上的 MySQL 控制台执行如下命令授予相应权限[^3]:
```sql
GRANT ALL PRIVILEGES ON your_database.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
```
另外需要注意的是防火墙规则是否允许外部设备对该端口发起请求,必要时候可以在安全组策略里开放对应的服务端口[^2]。
阅读全文
相关推荐


















