com.mysql.jdbc.exceptions.jdbc4.CommunicationException: Помилка зв'язку зв'язку


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.CommunicationException: Не вдалося зв’язати зв’язок
java.net.ConnectException: Підключення відмовлено

Я цитую цю відповідь, яка також містить покроковий посібник MySQL + JDBC:

Якщо ви отримаєте певний SQLException: Connection refusedабо Connection timed outMySQL CommunicationsException: Communications link failure, це означає, що БД взагалі недоступна. Це може бути однією або декількома з таких причин:

  1. IP-адреса або ім'я хоста в URL-адресі JDBC неправильно.
  2. Місцеве DNS-сервер не розпізнає ім'я хосту в URL-адресі JDBC.
  3. У URL-адресі JDBC номер порту відсутній або неправильний.
  4. Сервер БД не працює.
  5. Сервер DB не приймає TCP / IP-з'єднання.
  6. Сервер БД закінчився.
  7. Щось між Java та БД блокує з'єднання, наприклад, брандмауер чи проксі.

Щоб вирішити те чи інше, дотримуйтесь наступних порад:

  1. Перевірте і протестуйте їх ping.
  2. Оновіть DNS або використовуйте IP-адресу в URL-адресі JDBC.
  3. Перевірте це на основі my.cnfбази даних MySQL.
  4. Запустіть БД.
  5. Перевірте, чи не запущено mysqld без --skip-networking option.
  6. Перезапустіть БД і відповідно виправте свій код, щоб він закривав з'єднання в finally.
  7. Вимкнути брандмауер та / або налаштувати брандмауер / проксі, щоб дозволити / переслати порт.

Дивитися також:


4
MAMP / MAMP Pro за замовчуванням встановлює MAMP_skip-networking_MAMP. Ви повинні відключити цей рядок у своєму my.cfn
— Jurik

6
Не в цьому випадку, але вихід з ладу зв'язку також відбувається, коли ви використовуєте пул з'єднань, і з'єднання закриваються через тривалу бездіяльність. Тільки в цьому випадку він говорить: "Останній пакет був отриманий кілька" X "секунд тому"
— nikel

@nikel Чи не повинні тримати нитки в пулі з'єднань активованими, запускаючи запит перевірки "select 1"? Чому вони закриваються тривалою бездіяльністю, коли ми встановили, що евиктор запускається через більш короткі проміжки часу, ніж таймаут сервера mysql?
— Фархад

Так, це запит на перевірку виправить це. Моя думка була про випадок, коли він не встановлений, а з'єднання в пулі вимкнуті через бездіяльність
— nikel

Іноді порт відсутній у рядку з'єднання, і драйвер спробує підключитися до порту за умовчанням 3306 mysql & не вдасться, якщо mysql не працює на цьому порту. Це було моїм питанням, тому я хотів би зазначити, якщо хтось інший знайде це корисним.
— Абдул Маннан

10

Я виловлю це виняток, коли Java виходить з купи. Якщо я спробую ввести в оперативну пам’ять багато елементів даних - спочатку я вловлюю " Збій посилання зв'язку " і далі " 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 не працює або його зупиняють. Я перезапустив свій сервер, він працював як шарм.
— Абхішек Екаант

7
Це "найкраще рішення", чому? Яку проблему вона вирішує, і як?
— Маркіз Лорн

це рішення не може генерувати кадри даних
— Алан,

8

Цей com.mysql.jdbc.exceptions.jdbc4.CommunicationsExceptionвиняток виникає, якщо підключення до бази даних тривалий час не працює.

Це з'єднання в режимі очікування повертається істинно, connection.isClosed();але якщо ми спробуємо виконати оператор, то він випустить це виняток, тому я запропоную перейти до об'єднання баз даних.


2
Це також виникає з інших причин, таких як "відмовлено в з'єднанні".
— Маркіз Лорн

6

У мене одна і та ж проблема годинами. Я використовую сервер MAMP

Замість використання localhost: [Порт Apache], використовуйте порт MySQL.

Нижче - порт MySQL за замовчуванням для сервера MAMP.

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

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

якщо у вас є болото перед встановленням Mysql, то спробуйте цей метод
— DAVIS BENNY 15MIS0426

5

Я, можливо, тут гавкає неправильне дерево, але, як видається, ваш виняток вказує, що ваш сервер MySQL недоступний.

Виняток у потоці "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Помилка зв'язку зв'язку. Останній пакет, який успішно відправлений на сервер, був 0 мілісекунд тому. Драйвер не отримав жодного пакету від сервера. у ...

Що станеться, якщо спробувати (з терміналу)

mysql -u username -p

Вам буде запропоновано пароль, пов’язаний із ім’ям користувача. Після введення правильного пароля підключається клієнт mysql?

Можливо, вам доведеться запустити MySQL з Налаштування, якщо ні. Ви також можете встановити його для запуску при запуску.


1
Я використовую MAMP для запуску свого MySQL-сервера. Це буде проблемою?
— 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/…
— Nishi

Той самий випадок і для мене. Версія драйвера призначена для MySQL 5, тоді як версія сервера - 8. Отже, я оновив версію банку і проблему вирішено.
— edenPan

4

Я отримав таку ж помилку, оскільки намагався запустити свою програму, не запускаючи сервер mysql.

Після запуску сервера mysql все пішло правильно.


4

Раніші відповіді відповідні. Але я також хотів би вказати на більш загальне питання.

Я зіткнувся з подібним питанням, і причиною цього стало обмеження мережі в моїй компанії.

Це ж з'єднання набуло успіху, коли я був у будь-якій іншій мережі.


1
Цей вказівник вирішив мою проблему, вказавши, що "localhost" працював під час підключення до VPN, але це не працювало, якщо я відключаюсь від VPN, однак я виправив це, змінивши "localhost" на "127.0.0.1"
— gannu_lee

4

Оновіть свою IP-адресу у /etc/mysql/my.cnf-файлі

bind-address  = 0.0.0.0

Перезапустіть служби mysql deamon та mysql.


1
Відредаговано, щоб використовувати дійсну адресу прив’язки
— OneCricketeer

3

Завантажте MySQL-JDBC-Type-4-Treiber (ig 'mysql-connector-java-5.1.11-bin.jar' з 'mysql-connector-java-5.1.11.zip') на Mysql .

Потрібно ввімкнути банку драйверів під час компіляції та виконання у вашому класі.

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 це працює, вам дійсно просто потрібно правильно налаштувати свій класний шлях. (Або скопіюйте банку в каталог% JAVA_HOME% \ jre \ lib \ ext, але це вважається поганою практикою)
— укладальник

3

Ця помилка також може статися, якщо Java намагається підключитися до MySQL через SSL, але щось піде не так. (У моєму випадку я конфігурував пули підключення Payara Server 5.193.1 до MySQL.)

Деякі люди запропонували налаштувати useSSL=false. Однак, оскільки версія Connector / J 8.0.13, це налаштування застаріле. Ось уривок із властивостей конфігурації MySQL Connector / J 8.0 :

sslMode

За замовчуванням мережеві з'єднання шифруються SSL; ця властивість дозволяє відключити захищені з'єднання або вибрати інший рівень безпеки. Допускаються такі значення: DISABLED- Встановлення незашифрованих з'єднань; PREFERRED- (за замовчуванням) Встановіть зашифровані з'єднання, якщо сервер їх включив, інакше повернетесь до незашифрованих з'єднань; REQUIRED- Встановіть безпечні з'єднання, якщо сервер їх включив, якщо інше не вдасться; VERIFY_CA- як, REQUIREDале додатково перевірити сертифікат TLS сервера щодо налаштованих сертифікатів сертифікаційного органу (CA); VERIFY_IDENTITY- Подібно доVERIFY_CA , але додатково переконайтеся, що сертифікат сервера відповідає хосту, до якого здійснюється спроба підключення.

Це властивість замінило застарілі застарілі властивості useSSL, requireSSLі verifyServerCertificate, які все ще приймаються, але переводяться у значення для, 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. Зверніть увагу , що для серверних версій ВСІХ, налаштувань за замовчуванням sslModeє PREFERRED, і це еквівалентно успадкованими налаштуваннями useSSL=true, requireSSL=falseіverifyServerCertificate=false, які відрізняються від стандартних налаштувань для Connector / J 8.0.12 та більш ранніх випадках у деяких ситуаціях. Програми, які продовжують використовувати застарілі властивості та покладаються на їхні старі налаштування за замовчуванням, слід переглянути.

Спадкові властивості ігноруються, якщо sslModeвстановлено чітко. Якщо жодне з sslModeабо useSSLне встановлено явно, застосовується налаштування за замовчуванням sslMode=PREFERRED.

За замовчуванням :PREFERRED

З моменту версії : 8.0.13

Тож у моєму випадку налаштування sslMode=DISABLEDбуло все, що мені було потрібно для вирішення проблеми. Це було на тестовій машині. Але для виробництва безпечним рішенням було б правильно налаштувати клієнт Java та сервер MySQL для використання SSL.


Зауважте, що, відключивши SSL, вам також доведеться встановити allowPublicKeyRetrieval=true. (Знову ж таки, не розумне рішення з точки зору безпеки). Додаткова інформація надана в параметрах MySQL ConnectionString :

ДозволитиPublicKeyRetrieval

Якщо обліковий запис користувача використовує sha256_passwordавтентифікацію, пароль повинен бути захищений під час передачі; TLS є кращим механізмом цього, але якщо він недоступний, тоді буде використано шифрування відкритого ключа RSA. Щоб вказати відкритий ключ сервера RSA, використовуйте параметр ServerRSAPublicKeyFileрядка з'єднання або встановіть, AllowPublicKeyRetrieval=Trueщоб дозволити клієнту автоматично запитувати відкритий ключ від сервера. Зверніть увагу, що AllowPublicKeyRetrieval=Trueзловмисний проксі може дозволити виконувати атаку MITM, щоб отримати пароль простого тексту, тому він за замовчуванням є Неправильним і повинен бути явно включений.


Відповідна нитка від Payara Server GitHub .
— МС Дусті

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. Тоді вам доведеться явно запустити mysql sever інші мудрі, що буде показано com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureпід час з'єднання з базою даних


2

Я вирішив цю проблему простим способом, який працював на мене. У мене виникла проблема "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Помилка зв'язку зв'язку". У моєму файлі db.properties у мене було таке: url: jdbc: mysql: // localhost: 90 / myDB, тільки видалено URL-адресу порту, в результаті чого таким чином URL: jdbc: mysql: // localhost / myDB, і це працювало для мене .


2

Це трапилось зі мною, коли я змінив порт mysql з 3306 на 3307 у файлах my.ini та php.ini, але після зміни портів (3307-> 3306) назад він знову працював нормально.


2

Якщо ви змінили свій порт, ви отримаєте подібну помилку "com.mysql.jdbc.exceptions.jdbc4.CommunicationException: Помилка зв'язку зв'язку" Перевірте номер свого порту


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 працює.


Це насправді проблема з вашим файлом / etc / hosts, а не Mysql
— OneCricketeer

@ cricket_007 За замовчуванням localhost вирішено на :: 1 замість 127.0.0.1.
— Haozhe Xie

1
Звичайно, лише якщо ipv6 увімкнено і залежно від файлу хостів
— 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 або вище, оновлений користувачем


це правильна відповідь, просто додайте useSSL = false в рядок з'єднання при використанні драйвера MySQL 8 або вище.
— Моханд

1

Для віддаленого дзвінка до Mysql

  1. Додайте віддаленого користувача до Mysql з for exampleple 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"))який не відповідав іменам стовпців у моїй базі даних.

Я не точно впевнений, хто з них вирішив проблему, але це спрацювало. Також не забудьте створити новий Statementі ResultSetдля кожного запиту таблиці.


1
(1) це, звичайно, не викликає цієї проблеми.
— Маркіз Лорн

0

Це може бути простою проблемою з баночкою. можливо, ви використовуєте стару, mysql-connector-java-XXX-bin.jarяка не підтримується вашою поточною версією mysql. Я використовував, mysql-connector-java-5.1.18-bin.jarяк я використовую, mysql 5.5і ця проблема вирішена для мене.


1
Так, є шанс невідповідності банку.
— Кіран Нанна

Усі ці версії драйверів повинні бути сумісні.
— Маркіз Лорн

0

Можливо, ви не запустили свій сервер Mysql та Apache. Після запуску сервера Apache та Mysql з панелі керування XAMPP, з'єднання було успішно встановлено.

Удачі!


0

Що для мене вирішено - це 2 речі: 1. створити нового користувача, крім root, за допомогою пароля, використовуючи наступні connads:

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

2. коментувати рядок IP-адреси на mysqld.conf

потім підключіться до нового імені користувача та пароля. це має працювати.


Вам потрібно буде повторити це для всіх віддалених користувачів або додати шаблону замість
— Localhost

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, а завантаження водійського класу вручну, як правило, не потрібне.

Я змінив декларацію, щоб використовувати 5.1.38 версію mysql-connector-java, і в коді я зберіг com.mysql.jdbc.Driver .

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

Все почалося , коли я побачив ANKIT JAIN в відповідь


0

Мій брандмауер блокував пост 3307, який слухав мій MySQL. Тому я змінив порт з 3307 на 3306. Тоді я можу успішно підключитися до бази даних.


0

У своєму MacBook я вирішував цю помилку лише під час перевстановлення нової версії Elipse EE та видалення локальних серверів, таких як xamp mysql або mamp, але використовую лише один з них ...


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).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.