Подключение NetBeans к MySQL

Я просмотрел все и попробовал все, что смог найти по этому вопросу, поэтому я делаю пост на случай, если моя проблема будет чем-то странным.

MySQL Workbench может использовать сервер для запросов и обновлений просто отлично. Уведомитель показывает, что сервер работает.

Я попытался использовать Eclipse Juno и Kepler и получил eclipse SQL State: 08S01 error 0. Нулевые пакеты были успешно отправлены, а сервер не получил ответа. Я заново загрузил Connector/J, чтобы убедиться, что не было ошибки из-за сбоя загрузки. Не улучшилось

Я перешел на Netbeans, чтобы убедиться, что это не просто Eclipse и что-то в моей системе. Не отправлено успешных пакетов и ничего не получено.

Я проверил, чтобы убедиться, что сервер был включен и правильный порт использовался telnet в командной строке, и, как и ожидалось, он запрашивает ввод пароля, как и должен. Я использовал Wire Shark, чтобы посмотреть, как выглядят данные пакета. Похоже, сервер прослушивал правильный порт, а рабочая среда MySQL использовала правильный порт.

Я в растерянности за то, что не так. Я даже обновился до Windows 7, чтобы убедиться, что это не проблема аутентификации драйвера в Vista.

Я использовал этот код в NetBeans:

    import java.sql.*;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    public class MySQLTest {
       public static void main(String[] args)
       {
                   try {
               Class.forName("com.mysql.jdbc.Driver").newInstance();
               System.out.println("1");
               Connection con =        DriverManager.getConnection("jdbc:mysql://127.0.0.0:3306/", "root", "wonderwoman");
                 System.out.println("2");
                 con.close();
               System.out.println("We made it!");
           } catch (SQLException ex) {
               Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
           } catch (ClassNotFoundException ex) {
               Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
           } catch (InstantiationException ex) {
               Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
           } catch (IllegalAccessException ex) {
               Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
           }
       }
    }

И в итоге получил это:

22 октября 2013 г. 20:59:20 rad.MySQLTest main SEVERE: null com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой линии связи

Последний пакет, успешно отправленный на сервер, был 0 миллисекунд назад. Драйвер не получил никаких пакетов с сервера.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:357)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2482)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at rad.MySQLTest.main(MySQLTest.java:21)
Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:241)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:307)
    ... 15 more

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

4 ответа

Привет, у меня была точно такая же проблема, до сих пор мой MySQL-сервер нормально подключался к netbeans, а потом вдруг перестал работать. Я проверил мой файл my.config в папке bin и по какой-то причине порт изменился с 3306 на 6033, поэтому вы можете либо заново зарегистрировать MySQL под новым номером порта, либо изменить номер порта в файле конфигурации.

Я просто делаю быстрый поиск и вижу этот видеоурок, может быть, вы делаете что-то не так шаг за шагом. Надеюсь, что это полезно для ваших нужд http://magentoexpertforum.com/showthread.php/10268-Connect-Netbean-to-MySQL

Добавить MySql_connetor.bin файл в библиотеку вашего проекта, затем очистите и соберите, и запустите.

Попробуйте этот код:

try {
  Class.forName("java.sql.Driver");
  Connection con = 
  DriverManager.getConnection("jdbc:mysql://localhost/db_name","username","password");
  Statement stmt = con.createStatement();
  ///your furthercode acc. to your project
}
catch(Exception e) {
  JOptionPane.showMessageDialog(null,e.getMessage());
}

Я думаю, что вы запускаете mysql на своем локальном компьютере, если это так, добавьте имя вашей базы данных в строку подключения и попробуйте, например, "jdbc:mysql://127.0.0.1:3306/databasename" или попробуйте "jdbc:mysql://localhost:3306/ имя_базы_данный"
Вы используете 127.0.0.0 в качестве IP-адреса, но обычно localhost - это 127.0.0.1, а не 127.0.0.0.

Другие вопросы по тегам