標籤:checkout log4 cli please span mil processor append nec
問題:
串連資料庫時報錯:
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
java.lang.RuntimeException: 無法從資料來源擷取串連
at com.eteda.DbConnectionPool.EtedaDbPool.getConnection(EtedaDbPool.java:106)
at com.zdc.MyServer.ZhangWork.UserLogin(ZhangWork.java:3567)
at com.zdc.MyServer.ZhangWork.process(ZhangWork.java:96)
at com.lyw.MyServer.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:50)
at com.lyw.MyServer.catalina.connector.http.Hander.run(Hander.java:14)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:692)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140)
at com.eteda.DbConnectionPool.EtedaDbPool.getConnection(EtedaDbPool.java:104)
... 7 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1469)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:644)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:554)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:758)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:685)
... 9 more
分析:
問題原因在設定檔或者建立jdbc時串連資料庫的問題上:
先是執行這句:grant all on lx.* to "zhangdc"@‘%‘;
然後配置上面的檔案,就可以了。
下面是自己寫的一個測試程式,也能通:
總結:從mysql資料庫,換成mariadb後,先是將mysql的jar包換成mariadb-java-client-1.6.4.jar(最後問題解決了,回來測了一下,跟這個沒關係)。然後進入資料庫執行:
grant all on lx.* to "zhangdc"@‘%‘;後,用zhangdc使用者登陸,問題就解決了。
有用提示:
grant all on db_name.* to ‘vincent’@‘%‘;
或者GRANT ALL PRIVILEGES ON db_base.* TO db_user @‘%‘ IDENTIFIED BY ‘db_passwd‘;
java 串連mariadb 無法擷取資料來源的問題,在ubuntu上部署的時候(原創)