Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Communication link failure: Bad handshake, Ошибка подключения к БД MySQL 
V
    Опции темы
almostlost
Дата 14.8.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Здрасвствуйте...

Проблема состоит в следующем:

подключаю драйвер:
Код

import com.mysql.jdbc.Driver ;


регистрирую драйвер:

Код

DriverManager.registerDriver(new com.mysql.jdbc.Driver());


создаю соединение с базой данных
Код

DriverManager.getConnection("jdbc:mysql://localhost/test","root","");



Программа выдает эксепшен:
Communication link failure: Bad handshake

Может быть кто нибудь с этим встречался? 
Заранее спасибо.

полный код:


  
Код

 try{
     DriverManager.registerDriver(new com.mysql.jdbc.Driver());
     DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
       }
 catch(Exception econ)
   {
     System.out.println(econ.getMessage());
   }

PM MAIL   Вверх
AntonSaburov
Дата 14.8.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



А так не пробовал:

Код

import java.sql.*;
public class TestJDBC
{
  public static void main(String args[])
  {
    try {
      Class.forName("com.mysql.jdbc.Driver");
      String url = "jdbc:mysql://localhost/test";
      Connection con = DriverManager.getConnection(url,"root", "");
      System.out.println("URL: " + url);
      System.out.println("Connection: " + con);
      Statement stmt = con.createStatement();

      // Здесь сделай свой SELECT
      ResultSet rs = stmt.executeQuery("SELECT * FROM students");      
      while(rs.next()) {
        // А здесь выводи то, что получил.
        String str = rs.getString(1) + ":" + rs.getString(2);
        System.out.println(str);
      }
      rs.close();
      stmt.close();
      con.close();
    }
    catch( Exception e ) {
      e.printStackTrace();
    }
  }
}


Хорошо бы еще проверить, что есть такая база данных test и к ней есть доступ.

Добавлено через 2 минуты и 13 секунд
Есть еще вопрос - а какой JDBC драйвер используется ? Ибо если очень старенький, то такое вохможно.
PM MAIL WWW ICQ   Вверх
almostlost
Дата 14.8.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



База test  существует и доступ к ней тоже.

Драйвер называется:
mysql-connector-java-3.0.8-stable-bin.jar

Пробывал скачивать с сайта mysql драйвер mysql-connector-java-5.0.5.jar 
но это не помогло. Версия MySQL Server 4.1
AntonSaburov при использовании кода который ты написал програма выкидывает следующий эксепшен:

Код

java.sql.SQLException: Communication link failure: Bad handshake

    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:659)

    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1562)

    at com.mysql.jdbc.Connection.<init>(Connection.java:491)

    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)

    at java.sql.DriverManager.getConnection(DriverManager.java:512)

    at java.sql.DriverManager.getConnection(DriverManager.java:171)

    at test.test.main(test.java:11)


PM MAIL   Вверх
AntonSaburov
Дата 14.8.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



проверь по списку:

# The root user exists and has sufficient privileges on the MySQL server.

# The password you are using for the root user is correct.

# The password is exactly eight characters in length. In some versions of MySQL the password for the root user must be exactly eight characters to allow a connection through a third party product using JDBC or ODBC drivers. This is true even if a password that is not eight characters long allows you to connect through MySQL client programs.

# The server name, system (host) that you are connecting from has access rights to the MySQL user table.
PM MAIL WWW ICQ   Вверх
powerOn
Дата 14.8.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



еще порт проверь, лучше даже явно его указать? например:
"jdbc:mysql://localhost:3306/test"


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
tux
Дата 14.8.2007, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



almostlost, как правило причина такого исключения - несоответствие версии MySQL и JDBC-драйвера. Поскольку версия MySQL у тебя не новая, попробуй скачать последний драйвер из третьей ветки и использовать его - http://dev.mysql.com/get/Downloads/Connect...//mysql.mix.su/.
PM MAIL Skype GTalk Jabber YIM   Вверх
almostlost
Дата 20.8.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Скачал новый драйвер mysql-connector-java-3.1.14 по ссылке которую Вы дали... но к сожелению опять тот же эксепшен.
Может я чтото неправильно делаю? 
У меня стоит JBuilderX 10.0 в ней в меню я выбираю configure jdk потом в вкладке Class нажимаю add и выбираю файл с расширением *.jar(Ведь драйвер должен иметь именно такое расширение???)
Мне кажется, что драйвер загружается, иначе бы программа не прошла бы компиляцию...
Также я пробывал указать порт 3306 и другие как Вы посоветовали, но ничего не меняется... 


Пароля для доступа к БД нет
Пользователь root...
Все настройки сервера MySQL по умолчанию...
PM MAIL   Вверх
almostlost
Дата 3.9.2007, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Проблема решилась когда я поставил MySQL более старой версии. Что-то около 3.1
Спасибо всем за помощь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.