DatabaseException CommunicationsException: сбой канала связи - PullRequest
2 голосов
/ 29 января 2012

Я использую Ubuntu & Net-beans. Я делаю java-приложение базы данных для настольных компьютеров из мастера Netbeans. Я использую базу данных MySQL, которую я могу открыть и выполнить запрос из ее Сервисов → Базы данных. Когда я запускаю его, я получил исключение ниже. Когда я чищу и собираю проект, запускаю jar-файл, то же исключение. Я установил Windows на той же машине с двойной загрузкой, а также имею ту же базу данных MySQL и Java. Когда я запускаю файл jar, созданный с помощью Ubuntu Netbeans, он отлично работает в Windows и показывает данные базы данных. Я также сделал другое, я делаю то же самое Java-приложение в Windows Netbeans, используя ту же базу данных, и оно отлично работает как с NetBeans, так и с JAR-файлом. Но когда я пытаюсь запустить его в Ubuntu, как в Netbeans, так и в файле jar отображается исключение ниже.

[TopLink Info]: 2012.01.29 11: 16: 58.898 - ServerSession (285416048) - TopLink, версия: Oracle TopLink Essentials - 2.0.1 (сборка b09d-fcs (12/06/2007)) 29 января 2012 г. 11:16:59 org.jdesktop.application.Application $ 1 run SEVERE: не удалось запустить приложение класса customerrecordsu.CustomerRecordsUApp Стек локальных исключений: Исключение [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (сборка b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.

Последний пакет, успешно отправленный на сервер, был 0 миллисекунд назад. Драйвер не получил никаких пакетов с сервера. Код ошибки: 0 на oracle.toplink.essentials.exceptions.DatabaseException.sqlException (DatabaseException.java:305)

... lot of more

Причина: java.net.SocketException: не удается подключиться к прокси-серверу SOCKS: соединение отклонено на java.net.SocksSocketImpl.connect (SocksSocketImpl.java:427)

... lot of more

Ниже приведен фрагмент файла my.cnf, удаляющий комментарии.

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0
[mysqld]
user        = mysql
socket      = /var/run/mysqld/mysqld.sock
port        = 3306

skip-external-locking
bind-address        = 127.0.0.1

ниже является частью файла persistance.xml

  <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
  <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/MyBusinessRecords"/>
  <property name="toplink.jdbc.user" value="root"/>
  <property name="toplink.jdbc.password" value="password"/>

Мастер Netbeans использует JPA и Top Link. Я делаю программу без мастера на чистой Java, она отлично работала в Ubuntu, как и ожидалось, и показываю данные базы данных. Эта программа ниже. Оба выше и ниже используют один и тот же Java MySQL connector.jar

public static void main(String[] args) {
    Connection con = null;
    Statement st = null;
    ResultSet rs = null;
    int id = 0;
    String name = null;
    try {
        String url = "jdbc:mysql://localhost:3306/MyBusinessRecords";
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        con = DriverManager.getConnection(url, "root", "5843");
        if (con != null) {
            System.out.println("A database connection has been establised!");
            st = con.createStatement();
            rs = st.executeQuery("select * from COUNTRIES");
            while(rs.next()){
            id = rs.getInt(1);
            name = rs.getString(2);
                System.out.println("id = " + id + " Name = " + name);
            }
        }
    } catch (Exception e) {
        System.out.println("Problem" + e.toString());
    } finally {
        if (con != null) {
            try {
                rs.close();
                st.close();
                con.close();
            } catch (Exception e) {
                System.out.println(e.toString());
            }
            con = null;
        }
    }
}

Это моя система

Java-версия "1.7.0_01" Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 21.1-b02, смешанный режим) Ubuntu 11.10. Тип ОС 64 бит Версия MySQL - MySQL 5.1.58-1ubuntu1 MySQL Client Версия 5.1.58 Сокет: /var/run/mysqld/mysqld.sock

Я читал вопросы и ответы более 15 на этом сайте с тем же вопросом, но теперь он мне помог. Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 17 января 2013

Попробуйте Java 1.6.У меня была похожая проблема, и я вернулся на Java 1.6 (я обновился до 1_7), и проблема исчезла.Вероятно, нужна другая версия toplink или OracleDriver для 1_7.

0 голосов
/ 31 января 2012
   String url = "jdbc:mysql://localhost:3306/MyBusinessRecords";

Причина: java.net.SocketException: Не удается подключиться к прокси-серверу SOCKS: несуществующий SOCKS прокси bind-address = 127.0.0.1 Вы можете попробовать bind-address = 0.0.0.0 или jdbc: mysql: //127.0.0.1: 3306 / MyBusinessRecords "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...