时间:2021-07-01 10:21:17 帮助过:3人阅读
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
配置如下
@Bean public DataSource dataSource(){ BasicDataSource dataSource = new BasicDataSource(); dataSource.setUrl("jdbc:mysql://localhost:3306/shopping"); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUsername("root"); dataSource.setPassword(""); return dataSource; }
也就是说hiberate将localhost解析成了192.168.1.109也就是电脑上面的ip,mysql会认为是远程的访问,但是mysql并没有配置这样的host;实际上mysql的配置中已经配置了localhost和127.0.0.1这样两种匹配方式。
那么为什么hibernate没有将localhost解析成127.0.0.1呢?
解决方案有很多种:
1. 修改hibernate配置为
jdbc:mysql://127.0.0.1:3306/shopping
2. 修改mysql
添加一个 192.168.1.109的ip权限
3. 如何通过修改mysql一次,之后hibernate使用localhost一直可以访问mysql, 我觉得可以建立一个中间层,用来匹配当前电脑的ip只要匹配,就可以登录
配置host为dongfusong.local,只要dongfusong.local可以动态的匹配电脑的ip就可以了。
Hibernate连接数据库问题org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory
标签: