他の人がこれについて投稿していることを知っていますが、誰も私の問題に回答していないようです。 1台のサーバが起動するたびに、データベースに接続しなければならず、私はいつでもどこからでも4〜10台のサーバから起動しています。また、mysqlがlocalhost接続を拒否することもあります。Java JDBC接続が拒否されました
MySQLの接続コード:
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/DATABASE?connectTimeout=15000", "USERNAME", "PASSWORD");
それはDATABASE、USERNAME & PASSWORD言い、それらは単にMySQLのユーザー情報を非表示にすることです。
接続するとき、私は時々しか、このエラーが出る:
は[15:52:13] [Craft Scheduler Thread - 2/WARN]: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2334)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.sql.DriverManager.getConnection(DriverManager.java:664)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.sql.DriverManager.getConnection(DriverManager.java:247)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at me.Swedz.core.MySQL.createPool(MySQL.java:17)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at me.Swedz.lobby.Lobby$1.run(Lobby.java:73)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.lang.Thread.run(Thread.java:745)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: Caused by: java.net.ConnectException: Connection refused
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.net.PlainSocketImpl.socketConnect(Native Method)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.net.Socket.connect(Socket.java:589)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at java.lang.reflect.Method.invoke(Method.java:498)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:327)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
[15:52:13] [Craft Scheduler Thread - 2/WARN]: ... 21 more
me.Swedz.core.MySQL.createPoolで
ライン17は、接続が初期化されている場合 (MySQLの接続コードの2行目は、前に提供このエラー)。
私のバインドアドレスは現在127.0.0.1です。これは私のために最適です。 0.0.0.0またはlocalhostに設定すると、このエラーが頻繁に発生するためです。
これは、時間とともにますます頻繁に起こり続けています。この問題で私のサーバーで作業するのは本当にイライラしており、不可能に近づいています。
編集:私は自分自身で問題を解決することができたと信じています。私は接続コードを少し違ったものに変更しました。そして、それは全く誤りではないようです!私の新しいMySQLの接続コード:以下のコードから
MysqlDataSource ds = new MysqlDataSource();
ds.setDatabaseName("DATABASE");
ds.setUser("USERNAME");
ds.setPassword("USER PASSWORD");
ds.setServerName("localhost");
ds.setPort(3306);
connection = ds.getConnection();
の可能性のある重複した[com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害](http://stackoverflow.com/questions/2983248/com-mysql-jdbc -exceptions-jdbc4-communicationsexception-communications-link-fai) – zombie
いいえ、@ zombie。これは複製ではありません。投稿を慎重に読むと、私の問題は何度か起こることがわかります。 「重複」投稿は常に発生し、唯一の時はいつでも発生します。 – Swedz
DBとアプリケーションの両方を実行する新しく起動したサーバの場合、アプリケーションが接続しようとする前にmysqlがまだ起動していない可能性はありますか?これが当てはまる場合は、2〜2秒待ってこの例外を処理し、再度接続を試みてください。 – Rob