com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害


225

データベースをJavaプログラムと通信できるように取り組んでいます。

誰かが、JDBCを使用して迅速で汚いサンプルプログラムを提供してもらえますか?

私はかなり途方もないエラーを得ています:

Exception in thread "main" 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.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1122)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2260)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:207)
    at SqlTest.main(SqlTest.java:22)
Caused by: 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.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1122)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2181)
    ... 12 more
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at java.net.Socket.<init>(Socket.java:375)
    at java.net.Socket.<init>(Socket.java:218)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:293)
    ... 13 more

テストファイルの内容:

import com.mysql.jdbc.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SqlTest {

    public static void main(String [] args) throws Exception {
        // Class.forName( "com.mysql.jdbc.Driver" ); // do this in init
        // // edit the jdbc url 
        Connection conn = DriverManager.getConnection( 
            "jdbc:mysql://localhost:3306/projects?user=user1&password=123");
        // Statement st = conn.createStatement();
        // ResultSet rs = st.executeQuery( "select * from table" );

        System.out.println("Connected?");
    }
}

17
私は愚かでした。MySQLサーバが開始されませんでした:(それは、それを起動した後に成功しました。
akfaisel

回答:


251

だから、あなたは

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンクの障害
java.net.ConnectException:接続が拒否されました

ステップバイステップのMySQL + JDBCチュートリアルも含まれているこの回答から引用しています。

あなたが取得する場合SQLException: Connection refusedConnection timed out、またはMySQLの特定をCommunicationsException: Communications link failure、それはDBがすべてでは到達できないことを意味します。これには、以下の1つ以上の原因が考えられます。

  1. JDBC URLのIPアドレスまたはホスト名が間違っています。
  2. JDBC URLのホスト名がローカルDNSサーバーで認識されません。
  3. JDBC URLにポート番号がないか間違っています。
  4. DBサーバーがダウンしています。
  5. DBサーバーはTCP / IP接続を受け入れません。
  6. DBサーバーの接続が不足しています。
  7. ファイアウォールやプロキシなど、JavaとDBの間の何かが接続をブロックしています。

どちらかを解決するには、次のアドバイスに従います。

  1. で確認してテストしますping
  2. DNSを更新するか、代わりにJDBC URLでIPアドレスを使用してください。
  3. my.cnfMySQL DBに基づいて確認します。
  4. DBを起動します。
  5. mysqldがなしで起動されているかどうかを確認し--skip-networking optionます。
  6. DBを再起動し、それに応じてコードを修正して、で接続を閉じますfinally
  7. ファイアウォールを無効にするか、ポートを許可/転送するようにファイアウォール/プロキシを構成します。

以下も参照してください。


4
MAMP / MAMP ProはデフォルトでMAMP_skip-networking_MAMPを設定します。my.cfnでこの行を無効にする必要があります
Jurik

6
この場合ではありませんが、通信プールの障害は、接続プールを使用していて、非アクティブ状態が長時間続いたために接続が閉じられた場合にも発生します。その場合にのみ、「最後のパケットは "X"秒前に受信されました」と表示されます
nikel

@nikel「select 1」検証クエリを実行して、接続プール内のスレッドをアクティブにしておくべきではありませんか?MySQLサーバーのタイムアウトよりも短い時間間隔で実行するようにEvictorを設定した場合、長時間の非アクティブによってそれらが閉じられるのはなぜですか?
Farhad

はい、検証クエリはこれを修正します。私のポイントは、それが設定されておらず、非
アクティブの

接続文字列からポートが欠落していることがあり、mysqlがこのポートで実行されていない場合、ドライバはデフォルトの3306 mysqlポートに接続しようとして失敗します。それは私の問題だったので、誰か他の人が役に立つと思う場合に備えて言及しておきます。
Abdul Mannan 2017年

10

Javaがヒープ不足のときにこの例外をキャッチします。多くのデータ項目をRAMに配置しようとすると、最初に「通信リンク障害」をキャッチし、次に「OutOfMemoryError」をキャッチします。

私はそれをログに記録し、メモリ消費量を減らし(1/2データを削除)、大丈夫です。


9

私の場合、Localhostを実際のデータベースサーバーのIPアドレスに置き換える必要がありました。

の代わりに

 Connection con = DriverManager.getConnection(
 "jdbc:mysql://localhost:3306/DBname", "root", "root");

必要だった

 Connection con = DriverManager.getConnection(
 "jdbc:mysql://192.100.0.000:3306/DBname", "root", "root");

最新アップデート4/5/18の場合:現在、MySQL Workbench 6.3を使用しています。ソリューションを確認するためにここに来ましたが、自分で見つけました。MySQLサーバーが実行されていないか、停止しているだけです。私はそれが魅力のように働いた私のサーバーを再起動しました。
Abhishek Ekaanth

7
これが「最善の解決策」なのはなぜですか。それはどのような問題を解決しますか?
ローン侯爵

このソリューションではデータフレームを生成できません
Alan

8

このcom.mysql.jdbc.exceptions.jdbc4.CommunicationsException例外は、データベース接続が長時間アイドル状態の場合に発生します。

このアイドル接続はtrueを返しますconnection.isClosed();が、ステートメントを実行しようとすると、この例外が発生するため、データベースプーリングを使用することをお勧めします。


2
「接続が拒否されました」などの他の理由でも発生します。
ローン侯爵

6

私は何時間も同じ問題を抱えてきました。MAMPサーバーを使用しています

localhost:[Apache Port]を使用する代わりに、MySQLポートを使用してください。

以下は、MAMPサーバーのデフォルトのMySQLポートです。

String url = "jdbc:mysql://localhost:8889/db_name";

Connection conn = DriverManager.getConnection(url, dbUsername, dbPassword);

Mysqlをインストールする前にmampがある場合は、この方法を試してください
DAVIS BENNY 15MIS0426

5

ここで間違ったツリーを表示しているかもしれませんが、MySQLサーバーが利用できないことを示す例外のようです。

スレッド「メイン」での例外com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンクの失敗サーバーに正常に送信された最後のパケットは0ミリ秒前でした。ドライバはサーバーからパケットを受信して​​いません。で...

(ターミナルから)しようとするとどうなりますか

mysql -u username -p

ユーザー名に関連付けられたパスワードの入力を求められます。正しいパスワードを入力した後、mysqlクライアントは接続しますか?

そうでない場合は、環境設定からMySQLを起動する必要がある場合があります。起動時に実行するように設定することもできます。


1
MySQLサーバーを実行するためにMAMPを使用しています。それは問題でしょうか?
Josh K

(Sequal Pro経由で)私に接続するときlocalhostは、正しいユーザー名/パスワードを使用します。
Josh K

5

私の場合、のバージョンがmysql-connector-java古すぎることがわかります。

私のデモでは、次のmysql-connector-javaように使用しています。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.9</version>
</dependency>

しかし、開発環境では、これを使用します:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.31</version>
</dependency>

また、MySQLのバージョンは5.1.48でした(はい、古いので、製品バージョンを模倣しています)。だから私は同じエラーに出会った。

理由がわかるので、解決策も見つかります。バージョンを合わせてください!


4
ありそうもない。これらのドライババージョンはすべて、下位互換性があると想定されています。
ローン侯爵

1
この問題は、参照、新しいMySQLコネクタに固定しているように見えるstackoverflow.com/questions/14559794/...
西

私も同じです。ドライバーのバージョンはMySQL 5用で、サーバーのバージョンは8です。そのため、jarのバージョンを更新して問題を解決しました。
edenPan

4

mysqlサーバーを起動せずにプログラムを実行しようとしたため、同じエラーが発生しました。

mysqlサーバーを起動した後、すべてが正常に行われました。


4

以前の回答が適切です。しかし、より一般的な問題についても指摘したいと思います。

私も同様の問題に直面し、その理由は私の会社のネットワーク制限でした。

他のネットワークにいるときも同じ接続が成功していました。


1
このポインターは私の問題を解決し、VPNに接続すると「localhost」が機能していたが、VPNから切断すると機能しなかったと
指摘しましたが

4

/etc/mysql/my.cnfファイルのIPアドレスを更新してください

bind-address  = 0.0.0.0

mysql deamonおよびmysqlサービスを再起動します。


1
有効なバインドアドレスを使用するように編集
OneCricketeer

3

ダウンロードのMySQL-JDBC型-4-Treiber(IG 'のmysql-コネクタのjava-5.1.11-bin.jarを' 'mysql-connector-java-5.1.11.zip'から)でのMysql

クラスパスでコンパイルおよびランタイム中にドライバーjarを挿入する必要があります。

Class.forName( "com.mysql.jdbc.Driver" ); // do this in init
// edit the jdbc url 
Connection conn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", username, password );
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery( "select * from table" );

いいえ、何も見つからないというエラーが大量に発生します。JARファイルなしでこれをインポートすることは可能ですか?
Josh K

@Joshこれは機能します。クラスパスを正しく設定するだけで十分です。(または、jarを%JAVA_HOME%\ jre \ lib \ extディレクトリにコピーしますが、これは悪い習慣と見なされます)
スタッカー

3

このエラーは、JavaがSSL経由でMySQLに接続しようとしたときにも発生する可能性がありますが、問題が発生します。(私の場合、私はMySQLへのPayara Server 5.193.1接続プールを構成していました。)

一部の人々は設定を提案しましたuseSSL=false。ただし、Connector / Jバージョン以降8.0.13、その設定は非推奨になりました。これは、MySQL Connector / J 8.0構成プロパティからの抜粋です。

sslMode

デフォルトでは、ネットワーク接続はSSL暗号化されています。このプロパティにより、安全な接続をオフにしたり、異なるレベルのセキュリティを選択したりできます。次の値を使用できますDISABLED。-暗号化されていない接続を確立します。PREFERRED-(デフォルト)サーバーが有効にした場合は暗号化された接続を確立し、そうでない場合は暗号化されていない接続にフォールバックします。REQUIRED-サーバーが有効にした場合は安全な接続を確立し、そうでない場合は失敗します。VERIFY_CA- REQUIRED構成されている認証局(CA)証明書に対してサーバーのTLS証明書を検証するのと同様ですが、さらに検証します。VERIFY_IDENTITY-に似VERIFY_CAていますが、サーバー証明書が接続が試行されるホストと一致することをさらに確認します。

このプロパティは推奨されないレガシープロパティを置き換えuseSSLrequireSSLverifyServerCertificate、まだの値に受け入れられますが、翻訳されたsslMode場合はsslMode明示的に設定されていません:useSSL=falseに変換されますsslMode=DISABLED{"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"}に翻訳されsslMode=PREFERREDます。{"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"}に翻訳されsslMode=REQUIREDます。{"useSSL=true" AND "verifyServerCertificate=true"}に翻訳されsslMode=VERIFY_CAます。に相当するレガシー設定はありませんsslMode=VERIFY_IDENTITY。ALLサーバーのバージョンのデフォルト設定のためのもの、注意しsslModeているがPREFERRED、それはのレガシーの設定に相当しuseSSL=truerequireSSL=falseverifyServerCertificate=false状況によっては、Connector / J 8.0.12以前のデフォルト設定とは異なります。従来のプロパティを引き続き使用し、古いデフォルト設定に依存しているアプリケーションは、確認する必要があります。

sslModeが明示的に設定されている場合、レガシープロパティは無視されます。いずれも設定されていないsslModeuseSSL、明示的に設定されている場合、デフォルト設定のがsslMode=PREFERRED適用されます。

デフォルトPREFERRED

バージョンから:8.0.13

したがって、私の場合、sslMode=DISABLED問題を解決するために必要なのは設定だけでした。これはテストマシン上にありました。しかし、本番環境では、安全なソリューションは、SSLを使用するようにJavaクライアントとMySQLサーバーを適切に構成することです。


SSLを無効にすることにより、の設定も必要になる場合があることに注意してくださいallowPublicKeyRetrieval=true。(ここでも、セキュリティの観点からの賢明な決定ではありません)。詳細については、MySQLのConnectionStringオプションをご覧ください。

AllowPublicKeyRetrieval

ユーザーアカウントがsha256_password認証を使用する場合、送信中にパスワードを保護する必要があります。これにはTLSが推奨されるメカニズムですが、TLSが使用できない場合は、RSA公開鍵暗号化が使用されます。サーバーのRSA公開鍵を指定するには、ServerRSAPublicKeyFile接続文字列設定を使用するかAllowPublicKeyRetrieval=True、クライアントがサーバーに公開鍵を自動的に要求できるように設定します。AllowPublicKeyRetrieval=True悪意のあるプロキシがMITM攻撃を実行してプレーンテキストのパスワードを取得する可能性があることに注意してください。したがって、デフォルトではFalseであり、明示的に有効にする必要があります。


Payara Server GitHubからの関連スレッド。
MS Dousti

3

私の同じ問題は次の手順で解決されます:

  1. に行く my.cnf

    vi /etc/mysql/my.cnf
  2. バインドアドレスを変更する

    "bind-address = 0.0.0.0"
  3. MySQLを再起動します

    sudo /etc/init.d/mysql restart

2

WAMPまたはXAMPサーバーを使用してmysqlデータベースをインストールする場合。次にcom.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure、データベースとの接続中に表示される他の方法でmysqlサーバーを明示的に起動する必要が あります


2

私はこの問題を簡単に解決しました。「com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure」という問題がありました。私のdb.propertiesファイルに私はこれを持っていました:url:jdbc:mysql:// localhost:90 / myDB、ポートurlを削除しただけで、このようにしてurl:jdbc:mysql:// localhost / myDBとなり、それは私のために働きました。


2

my.iniとphp.iniファイルでmysqlポートを3306から3307に変更すると、それが起こりましたが、ポート(3307-> 3306)を変更した後、再び正常に機能しました。


2

ポートを変更した場合、この種のエラー「com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure」が発生します。ポート番号を確認してください


1

ちょうどこれを経験しました。

それを機能させるために手に入れました:(これは静的ブロック初期化子に配置できます)

static{ // would have to be surrounded by try catch
    Class.forName("com.mysql.jdbc.Driver");   // this will load the class Driver
}

また、次の方法で接続を取得します。

conn = DriverManager.getConnection(DBURL,<username>,<password>);

ログインパラメータを指定する代わりに

  Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/projects?user=user1&password=123");

よろしく。


2
2007年以降、静的ブロックは必要なくなったため、どちらの方法でもログインパラメータを指定できます。
ローン侯爵

1

に変更localhostしてみてください127.0.0.1

localhostはに解決され::1ます。また、MySQLはデフォルトではIPv6経由で接続できません。

そしてここに出力されますtelnet localhost 3306

$ telnet localhost 3306
Trying ::1...

また、MySQLサーバーからの応答はありません。

もちろん、MySQLサーバーが実行中であることを確認してください。


これは実際には
Mysql

@ cricket_007デフォルトでは、localhostは127.0.0.1ではなく:: 1に解決されます。
Haozhe Xie

1
確かに、ipv6が有効で、hostsファイルに依存している場合のみ
OneCricketeer

1
dbhost=jdbc:mysql://172.18.23.100:3306/yourdatabase?useUnicode=yes&characterEncoding=UTF-8&useSSL=false
user=root
password=Password#321

con = DriverManager.getConnection(dbhost, user, password);

MySQLバージョン8以降のユーザーがコネクタを更新した場合


これは正解です。MySQLドライバー8以降を使用する場合は、接続文字列にuseSSL = falseを追加するだけです。
Mohannd

1

Mysqlへのリモート呼び出しの場合

  1. 追加のリモートユーザーをするMySQLの exemple IP = remoteIP用から:

    mysql -u xxxx -p //local coonection to mysql
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'theNewUser'@'remoteIP' IDENTIFIED BY 'passWord';
    //Query OK, 0 rows affected (xx sec)
    mysql> FLUSH PRIVILEGES;
    //Query OK, 0 rows affected
  2. Mysqlへのリモートアクセスを許可します(デフォルトでは、すべての外部呼び出しは許可されていません)。

    Edit 
    /etc/mysql/mysql.conf.d/mysqld.cnf    or    /etc/mysql/my.cnf
    Change line:  bind-address = 127.0.0.1   to
                  bind-address = 0.0.0.0
    Restart Mysql: /etc/init.d/mysql restart
  3. JDBCドライバーの最新バージョンであるJDBCの場合:

    jdbc.url='jdbc:mysql://remoteIP:3306/yourDbInstance?autoReconnect=true&amp;useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC'
    jdbc.user='theNewUser'

0

私は同じ問題を抱えていました、そしてそれが修正された方法です:

  1. 私の.jspは、サーブレットでまだ定義していない属性を呼び出していました。
  2. ResultSet (getString("columnName"))データベースにある列名と一致しない2つの列名がオブジェクトに渡されました。

どちらが問題を修正したかは正確にはわかりませんが、うまくいきました。また、あなたが新しい作成することを確認するStatementResultSet、各テーブルのクエリのために。


1
(1)確かにこの問題は発生しません。
ローン侯爵

0

単純なjarの問題である可能性があります。mysql-connector-java-XXX-bin.jar現在のmysqlバージョンでサポートされていない古いバージョンを使用している可能性があります。私 は自分がmysql-connector-java-5.1.18-bin.jar使用しているのmysql 5.5と同じように使用し、この問題は解決されました。


1
はい、jarの不一致の可能性があります。
Kiran Nunna

これらのドライババージョンはすべて互換性があると想定されています。
ローン侯爵

0

MysqlとApacheサーバーを起動しなかったのかもしれません。XAMPPコントロールパネルからApacheサーバーとMysqlを起動した後、接続が正常に確立されました。

幸運を!


0

私のために解決したことは2つのことをしています:1.以下のconnadsを使用して、いくつかのパスワードでroot以外の新しいユーザーを作成します:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

2. mysqld.confのIPアドレス行をコメント化する

次に、新しいユーザー名とパスワードで接続します。うまくいくはずです。


すべてのリモートユーザーに対してこれを繰り返すか、Localhostの代わりにワイルドカードを追加する必要があります
OneCricketeer

0

古いバージョンのMySQL(「バージョン」、「5.1.73」)に接続しようとしました。新しいバージョンのドライバーを使用すると、「com.mysql.cj.jdbc.Driverを使用するように指示するエラーが表示されるか、使用するドライバーを指定する必要がない場合でも:

クラスcom.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driverをロードしています。ドライバーはSPIを介して自動的に登録され、ドライバークラスの手動読み込みは通常不要です。

mysql-connector-javaの5.1.38バージョンを使用するように宣言を変更し、コードではcom.mysql.jdbc.Driverを保持しました

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>

アンキットジャイナの答えを見たときにすべてが始まりました


0

MySQLがリッスンしているポスト3307をファイアウォールがブロックしていました。そこで、ポートを3307から3306に変更しました。これで、データベースに正常に接続できます。


0

私のMacBookでは、新しいバージョンのeclipse EEを再インストールし、xamp mysqlやmampなどのローカルサーバーを削除し、そのうちの1つだけを使用する場合にのみ、このエラーを解決しました...


0

私の場合、リモートデータベースへのsshトンネルを確立する必要があり、すべての設定が正しく、PhpStormとの接続のテストも成功しました。また、スキーマは読み込まれましたが、データは読み込まれませんでした。代わりに私は得ました:

[08S01] 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.

上記の提案はどれもうまくいきませんでした。何らかの理由で、PhpStormを再起動して問題を解決することで問題を解決しようとしました!


0

次のような複数のエラーを受け取りました。

  • CommunicationsException: Communications link failure
  • java.lang.NullPointerException: Attempt to invoke interface method 'java.sql.Statement java.sql.Connection.createStatement()' on a null object reference at

追加する必要がありました:

  • AndroidManifest.xmlでは<uses-permission android:name="android.permission.INTERNET"/>、開始マニフェストタグの直後に含めます。

  • JDBCドライバーをGradle(またはMaven)依存関係に追加します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.