Страница 1 из 1

[Java & MySQL] Communication link failure

Добавлено: 20 дек 2013, 21:08
.dtramp
Доброго времени суток Вам Максим, и всем участникам данного форума, к сожалению столкнулся с проблемой связанной о взаимодействии Java и MySQL, дело в том что я имею свои собственные игровые ресурсы, которые базируется на платформе Java, и не посредственно все данные хрянятся в MySQL, так вот возникает ошибки вида:
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.
Проверил все конфиги, на подключение к БД, порты и т.п., пробывал запустить сервер с другой WAMP системой, заработал, но я заинетесован именно в вашем инструменте Максим, так как он имеет огромный функционал и возможности.

Так вот прошу помощи в решении моей проблемы.
С уважением, .dtramp!

Добавлено спустя 49 минут 2 секунды:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communicatio
ns link failure

The last packet successfully received from the server was 1а876а706 milliseconds
 ago.  The last packet sent successfully to the server was 0 milliseconds ago.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1
117)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3603)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3492)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4043)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2738)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1617)
        at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3894)
        ... 14 more
Это был последний старт сервера.

Добавлено: 20 дек 2013, 22:32
Максим
Погуглил - где-то в вашем софте должны быть настройки подключения к MySQL серверу (базе данных). Что-то типо такого:

String username = "user";
String password = "pass";
String url = "jdbc:mysql://www.domain.com:3306/dbName";

Убедитесь что логин и пароль там указаны правильные (те что вы создали сами, либо дефолтные mysql mysql). Так же убедитесь что правильно задано имя базы данных (здесь оно как dbName) и самое главное что домен (тут он указан как http://www.domain.com), к которому вы подключаетесь, существует в Open Server, т.е. что он есть в трей-меню.

Очень часто пользователи удаляют домен localhost после начала работы с Open Server, а в своих скриптах этот домен не меняют, отчего подключение к MySQL и не работает. Ну и само собой модуль MySQL должен быть выбран в настройках, а сам сервер должен быть запущен.

Добавлено: 21 дек 2013, 13:15
.dtramp
Driver = com.mysql.jdbc.Driver
URL = jdbc:mysql://localhost:3306/gs_db
Login = ******
Password = ********

Такой конфиг, спасибо за инормацию по счет localhosta, проверим. :D

Добавлено: 26 дек 2013, 21:16
.dtramp
Проблема актуальна, ибо все равно не цепляет сервер mysql.

Добавлено: 26 дек 2013, 23:12
Redee
Может будет необходимо драйвера обновить, собственно вот для явы.
5.1.28 >
https://drive.google.com/file/d/0B9BpgD ... sp=sharing
5.1.26 >
https://drive.google.com/file/d/0B9BpgD ... sp=sharing

Если есть аккаунт на http://dev.mysql.com/downloads/
то можно качать актуальную версию отсюда http://dev.mysql.com/downloads/connector/j/

Только там целым комплектом устанавливается, если что забираем нужный файл из програм файлс\MySQL\MySQL Connector J

Проверяем в консоли >
netstat -a

Я запустил HeidiSQL + PHPStorm (во время синхронизации, он использует драйвер mysql - ява коннектор)

Изображение

Изображение

Изображение

В принципе для чистоты эксперимента нельзя чтобы порт был использован -ESTABLISHED.
Только чтобы слушался он LISTENING - это когда мы загрузили OpServ и ничто еще не подключено к коннекту MySQL на 3306 порте (то есть нету эстаблишедов).

Добавлено: 26 дек 2013, 23:14
Максим
.dtramp писал(а):Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communicatio
ns link failure
Проблема у вас есть, но только она к Open Server отношения не имеет. Используйте Google и ищите информацию по этой проблеме. Вот например тут говорится что вы могли забыть подключить драйвер:
Class.forName("com.mysql.jdbc.Driver").newInstance();

Добавлено: 26 дек 2013, 23:17
Redee
Вот тоже думаю что драйвер не отрабатывает как надо.

Посмотрите еще на свою версию явы, качаем отсюда вдруг чего >
http://java.com/ru/download/manual.jsp
Полный оффлайн установщик Version 7 Update 45 >
http://javadl.sun.com/webapps/download/ ... leId=81819

У меня версия 7.40

Добавлено: 26 дек 2013, 23:50
.dtramp
Проблема возникла при переезде на OpenServer, это не говорит о том, что Ваш wamp сервер плох, капаю и дальше в поисках решения проблемы.

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

Добавлено: 27 дек 2013, 17:35
Redee
Сверте конфиги MySQL что на денвере и что на OpServe-e.
Может какой то директивы для игров. сервера не хватает / отключена / не то значение.
з.ы. Включить профилирование, если на игровом сервере это возможно и проследить по каким методам прошлось. Сверить с профайлом через опенсервер.
Можно через точку остановки обычным дебагом через PhpStorm.
з.ы.ы. Чисто мысли в слух, не знаю что еще придумать.