Не может сделать соединение JDBC к MySQL (использующий Java, IntelliJ и Linux)

У меня есть проблемы, пытающиеся получить соединение с базой данных с помощью кода ниже:

  try {
        Class.forName("com.mysql.jdbc.Driver");
        Properties p = new Properties();
        p.put("user", user_name);
        p.put("password", password);
        connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/jsp_test", p);
    } catch (SQLException ex) {
        // handle any errors
        ex.printStackTrace();
        System.out.println("SQLException: " + ex.getMessage());
        System.out.println("SQLState: " + ex.getSQLState());
        System.out.println("VendorError: " + ex.getErrorCode());
        return false;
    } catch (ClassNotFoundException e) {
        e.printStackTrace();  
    }

Сообщение об ошибке, которое производится:

/usr/lib/jvm/java-6-openjdk/bin/java-Didea.launcher.port=7532-Didea.launcher.bin.path =/usr/bin/idea/bin-Dfile.encoding=UTF-8 - путь к классу/usr/lib/jvm/java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/about.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/management-agent.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/jsse.jar:/usr/lib/j vm/java-6-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/loca ledata.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/dnsns.jar:/home/bedtimes/Java Projects/db_demo/out/production/db_demo:/opt/java/jre/lib/ext/mysql-connector-java-5.1.10-bin.jar:/usr/bin/idea/lib/idea_rt.ja r com.intellij.rt.execution.application. AppMain Основной com.mysql.jdbc.exceptions.jdbc4. CommunicationsException: отказ Коммуникационного канала

Последний пакет, отправленный успешно на сервер, был 0 миллисекунд назад. Драйвер не получил пакетов от сервера. в sun.reflect. NativeConstructorAccessorImpl.newInstance0 (Собственный метод) в sun.reflect. NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) в sun.reflect. DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect. Constructor.newInstance (Конструктор java:532) в com.mysql.jdbc. Util.handleNewInstance(Util.java:406) в com.mysql.jdbc. SQLError.createCommunicationsException (SQLError.java:1074) в com.mysql.jdbc. ConnectionImpl.createNewIO(ConnectionImpl.java:2214) в com.mysql.jdbc. ConnectionImpl. (ConnectionImpl.java:781) в com.mysql.jdbc. JDBC4Connection. (JDBC4Connection.java:46) в sun.reflect. NativeConstructorAccessorImpl.newInstance0 (Собственный метод) в sun.reflect. NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) в sun.reflect. DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect. Constructor.newInstance (Конструктор java:532) в com.mysql.jdbc. Util.handleNewInstance(Util.java:406) в com.mysql.jdbc. ConnectionImpl.getInstance(ConnectionImpl.java:352) в com.mysql.jdbc. NonRegisteringDriver.connect(NonRegisteringDriver.java:284) в java.sql. DriverManager.getConnection(DriverManager.java:620) в java.sql. DriverManager.getConnection(DriverManager.java:169) в базе данных. Database.connect (База данных java:80) в Main.main (Основном java:13) в sun.reflect. NativeMethodAccessorImpl.invoke0 (Собственный метод) в sun.reflect. NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) в sun.reflect. DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect. Method.invoke (Метод java:616) в com.intellij.rt.execution.application. AppMain.main(AppMain.java:110), Вызванный: com.mysql.jdbc.exceptions.jdbc4. CommunicationsException: отказ Коммуникационного канала

Последний пакет, отправленный успешно на сервер, был 0 миллисекунд назад. Драйвер не получил пакетов от сервера. в sun.reflect. NativeConstructorAccessorImpl.newInstance0 (Собственный метод) в sun.reflect. NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) в sun.reflect. DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect. Constructor.newInstance (Конструктор java:532) в com.mysql.jdbc. Util.handleNewInstance(Util.java:406) в com.mysql.jdbc. SQLError.createCommunicationsException (SQLError.java:1074) в com.mysql.jdbc. MysqlIO. (MysqlIO.java:343) в com.mysql.jdbc. ConnectionImpl.createNewIO(ConnectionImpl.java:2137)... 18 Более вызванных: java.net. ConnectException: Соединению отказывают в java.net. PlainSocketImpl.socketConnect (Собственный метод) в java.net. AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310) в java.net. AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176) в java.net. AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) в java.net. SocksSocketImpl.connect(SocksSocketImpl.java:384) в java.net. Socket.connect (Сокет java:542) в java.net. Socket.connect (Сокет java:492) в java.net. Сокет. (Сокет java:389) в java.net. Сокет. (Сокет java:232) в com.mysql.jdbc. StandardSocketFactory.connect(StandardSocketFactory.java:253) в com.mysql.jdbc. MysqlIO. (MysqlIO.java:292)... Еще 19 SQLException: отказ Коммуникационного канала

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

Процесс закончен с кодом выхода 0

У меня нет, буквально, идеи, как диагностировать это сообщение об ошибке. База данных существует. Имя пользователя и пароль существуют. Я в настоящее время не добавлял таблиц к базе данных, но я не думаю, что это может быть проблемой, так как я только устанавливаю связь после всех...

Я могу предоставить дополнительную информацию если потребности быть. Я чувствую, что попробовал много. Кто-либо знает какие-либо способы получить дополнительную информацию о том, как и почему она перестала работать?

Спасибо за помощь! :)

5
задан olive 20 January 2010 в 16:21
поделиться

1 ответ

Из строки подключения эта база данных должна быть на локальной машине. Можете ли вы попробовать запустить эту команду, чтобы сокет открыта для соединений?

Telnet 127.0.0.1 3306

и убедитесь, что он подключается? Возможно, вы не настроили свой экземпляр MySQL для прослушивания подключений с этой машины или на этом адресе этого интерфейса. Если соединение не удается, вам необходимо изменить настройку MySQL, например:

http://www.cyberciti.biz/tips/how-do-enable-remote-access-to-mysql-database-server .html

6
ответ дан 14 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: