簡體   English   中英

MySQLNonTransientConnectionException:無法創建與數據庫服務器的連接

[英]MySQLNonTransientConnectionException: Could not create connection to database server

我正在使用JDBC在Amazon RDS上連接到我的MySQL數據庫時遇到一個奇怪的問題。 我在同一網絡上有兩個運行相同代碼的不同Android手機。 一個連接沒有任何問題。 另一個給我以下例外:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2547)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    at java.sql.DriverManager.getConnection(DriverManager.java:175)
    at java.sql.DriverManager.getConnection(DriverManager.java:209)
    at edu.ucsb.cs.epsilon.ucsb360.DatabaseManager.Connect(DatabaseManager.java:32)
    at edu.ucsb.cs.epsilon.ucsb360.Global.applicationResumed(Global.java:31)
    at edu.ucsb.cs.epsilon.ucsb360.MainActivity.onResume(MainActivity.java:54)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1236)
    at android.app.Activity.performResume(Activity.java:4625)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2834)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2889)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:156)
    at android.app.ActivityThread.main(ActivityThread.java:5045)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.NetworkOnMainThreadException
    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1190)
    at java.net.InetAddress.lookupHostByName(InetAddress.java:394)
    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:245)
    at java.net.InetAddress.getAllByName(InetAddress.java:220)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:249)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:305)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2461)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)

該數據庫僅顯示1個活動連接,因此我知道不是因為打開的連接過多。 我曾嘗試重新啟動服務器,但沒有幫助。 我正在使用MySQL JDBC Connector / J版本5.1.23。 運行正常的手機正在運行Android 2.3.5版,而運行不正常的手機正在運行Android 4.0.4版。 是否有人對可能出什么問題有任何想法?

謝謝!

Caused by: android.os.NetworkOnMainThreadException

您不能在主線程上執行網絡IO。 將其移動到AsyncTask或線程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM