Hibernate連接數據庫問題org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory


使用hibernate無法連接數據庫的問題:

ERROR: HHH000231: Schema export unsuccessful

 (Access denied for user 'root'@'192.168.1.109' (using password: NO))

at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)

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並沒有給這個ip配置host; 實際上mysql的配置中已經配置了localhost和127.0.0.1這樣兩種匹配方式(關掉wifi之后可以訪問mysql)那么為什么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了呢?

可以建立一個中間層username.local,用來獲取當前電腦的ip(本質就是動態的配置方式),然后將host配置成usernaem.local

 

小結:其實這個問題本身可能不算什么,就像很多“莫名其妙”的問題一樣,對於明白的人來說是很顯然的,但是在學習新技術的時候會遇到很多類似的問題,遇到這樣的問題是不可避免的,很多時候我們就會變得盲目,不知所措,會不管三七二十一的去“百度和谷歌”上面找答案,我覺得這並不可取,應該暫時停下來,思考一下問題的來龍去脈,定義一下遇到的是哪一類問題,然后”膽大心細“的解決:大膽的猜想和wishfull thinking,同時要關注細節和細枝末節的關系,發現可能的線索,小心的求證,這才是在實踐中學習的節奏。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied 錯誤解決 org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'Administrator'@'localhost' (using password: YES)) 有大神知道:ERROR[org.apache.ibatis.mapping.VendorDatabaseIdProvider:51]- Could not get a databaseId from dataSource org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (C nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory jdbc連接oracle時報錯 Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableC Spring 整合Mybatis 出現了Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create Poola sql異常:nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object 程序連接oracle數據庫問題Cannot create PoolableConnectionFactory ...
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM