Connections could not be acquired from the underlying database

本文介绍了解决Connectionscouldnotbeacquiredfromtheunderlyingdatabase错误的方法,主要通过检查配置参数并设置MySQL远程访问权限来实现。

"Connections could not be acquired from the underlying database" 大概意思是说:不能连接当前所配置的数据库.

出现这种问题,一般是配置参数有误.若连接mysql数据库的话,这时还要考虑你设置远程mysql.否则,也会出这个问题.

远程访问MySQL的设置
1.在User表中添加允许远程访问的用户
insert into mysql.user(Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,
Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,
References_priv,Index_priv,Alter_priv)
values ('url', 'username', 'password', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y');
然后重启mysql.

注意: 如果没有指定的固定IP地址,对应的Host设为空即可实现在任意机器上登录访问。


2.使用Grant分配权限
grant all on *.* to 'username' @'url' identified by 'password';
然后重启mysql.当前只是对指定ip进行权限分配的.还可以允许任何机器访问的.

注: 该命令与第一种方法得到的效果一模一样。username和password是连接当前数据库的用户名和密码.例如:grant all on *.* to 'root' @'192.168.0.55' identified by '123456';这意思是说允许连接数据库用户名为root,密码是123456的ip为192.168.0.55进行远程访问该数据库的增删改查操 作.

### 错误原因分析 `Connections could not be acquired from the underlying database` 错误通常表明应用程序无法从数据库连接池中获取数据库连接。根据提供的信息,以下是一些可能的原因: 1. **驱动版本不兼容**:如果使用的 `mysql-connector-java` 驱动版本与数据库版本不兼容,可能会导致连接失败。例如,使用 MySQL 8.0 数据库时,若使用的是 5.1.6 版本的驱动,可能会出现兼容性问题。换用 8.0.11 或更高版本的驱动后,问题得以解决 [^1]。 2. **驱动类名错误**:在 MySQL 8.0 及以上版本中,正确的驱动类名为 `com.mysql.cj.jdbc.Driver`。如果配置错误,可能导致连接失败 [^2]。 3. **数据库连接地址错误**:数据库连接 URL 配置错误也可能导致连接失败。例如,URL 中可能缺少必要的参数,如 `serverTimezone` 属性 [^2]。 4. **数据库服务未启动或权限问题**:如果数据库服务未启动,或者用户没有访问数据库的权限,也会导致连接失败 [^3]。 5. **依赖引入问题**:如果项目中引入的 MySQL 依赖无效或版本不匹配,也可能导致连接失败。例如,如果数据库是 MySQL 8.0.21,则应引入对应的 `mysql-connector-8.0.16.jar` 包 [^3]。 ### 解决方案 1. **更新驱动版本**:确保使用的 `mysql-connector-java` 驱动版本与数据库版本兼容。例如,对于 MySQL 8.0 数据库,使用 8.0.11 或更高版本的驱动 [^1]。 2. **检查驱动类名**:确保在配置文件中使用了正确的驱动类名 `com.mysql.cj.jdbc.Driver` [^2]。 3. **验证数据库连接地址**:检查数据库连接 URL 是否正确,特别是是否包含了必要的参数,如 `serverTimezone` [^2]。 4. **检查数据库服务状态和权限**:确保数据库服务正在运行,并且用户具有访问数据库的权限 [^3]。 5. **确认依赖引入正确**:确保项目中引入的 MySQL 依赖有效且版本正确。例如,如果数据库是 MySQL 8.0.21,则应引入对应的 `mysql-connector-java` 包 [^3]。 ### 示例代码 ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency> ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值