LINUX.ORG.RU

[java+mysql] Communications link failure


0

1

День добрый сообществу!

Имеется:

  • Debian squeeze,
  • Текущий MySQL с репозитория,
  • NetBeans 6.9.1,
  • mysql-connector-java 5.1.16.

При подключении к БД получаю ошибку:

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.

Код:

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception e) {
            error = ErrorKind.DRIVER_ERROR;
            JOptionPane.showMessageDialog(mainWindow.getComponent(),
                    "..." + e,
                    "...",
                    JOptionPane.ERROR_MESSAGE);
            return;
        }

        Properties properties = new Properties();
        properties.setProperty("user", login);
        properties.setProperty("password", password);
        properties.setProperty("useUnicode", "true");
        properties.setProperty("characterEncoding", "UTF-8");

        try {
            conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost/db77", properties);
            st = conn.createStatement();

            createTables();

        } catch ...

Важный поинт: пробовал подключиться к этой БД удаленно с этим кодом и этим коннектором - все работает.

Мои мысли + то, что перепробовал:

  • Вероятно, проблема не связана с коннектором, БД или моим кодом - поскольку подключаясь с удаленной машины все работает.
  • Правила фаервола пусты.
  • Пробовал разные варианты bind-address в файле /etc/mysql/my.cnf (127.0.0.1, 0.0.0.0, адрес в локальной сети)
  • Смахивает, что лажа из-за настроек java на этой машине. Добавил в java.policy строку
    permission java.net.SocketPermission "localhost:3306", "connect, resolve";
    Не помогло.
  • Так же не удаеться подключиться к какой-то другой удаленной БД. Ошибка все та же.
telnet localhost 3306
mysql -uuser -ppassword

Успешно подключаются.

Есть идеи? Спасибо за внимание.

★★★

Последнее исправление: observer (всего исправлений: 5)

Не похоже что вы что-то делаете не правильно. Скорее всего штатный глюкодром. Поменяйте версии, что-то в таком роде

vertexua ★★★★★
()
Ответ на: комментарий от observer

Еще заметил что в URL нет порта. Может укажите его явно. Честно говоря без порта сам никогда не пробовал, может оно и стучит куда-то не туда

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Пробовал указывать порт явно - бесполезно.

observer ★★★
() автор топика

> mysql -uuser -ppassword

Успешно подключаются


... через Unix domain socket. А что насчет «mysql -h 127.0.0.1 -user -ppassword»?

Nastishka ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.