2014-02-08 1 views
0

Я не могу подключиться к базе данных mysql на своем «живом сервере», но он отлично работает на моем локальном компьютере.Не удалось создать соединение с сервером базы данных - соединитель java mysql

В моем главном классе я это делаю:

try { 
    main.connection.open(); 
} catch (SQLException e1) { 
    log.fatal(e1.getMessage()); 
    System.exit(0); 
} 

И открытый метод выглядит следующим образом

public void open() throws SQLException{ 
    if(con != null) close(); 
    con = DriverManager.getConnection(url, user, password); 
} 

Через пару минут работы я получаю это:

14: 35: 47.434 [main] FATAL se.mypack.Server - Не удалось создать соединение с сервером базы данных. Попытка повторного подключения 3 раза. Сдаваться.

Как отладить это? Переменные URL, сервера и пароля верны. Что может быть проблемой здесь?

Использование MySQL-разъем-Java-5.1.29-bin.jar

+0

проверить свои учетные данные еще раз. Вы должны быть на 100%, что они правы. Также выясните, есть ли у пользователя права доступа к этой базе данных - убедитесь, что вы используете команду «GRANT» для предоставления разрешений этому пользователю. –

+0

Это было сделано. Подключение с теми же учетными данными в php-проектах. И у пользователя также есть разрешения для localhost, который является используемым мной сервером. Нужно ли устанавливать разрешения для локального IP-сервера серверов? например. 192.168.0.4 – daker

+0

да, вам нужно будет сделать это в живой базе данных, если вы пытаетесь подключиться к вашей машине. вам нужно будет предоставить разрешения для внешнего ip вашего устройства (вы можете видеть, что если вы ssh в него - если это среда Linux) - см. это: http://stackoverflow.com/a/8348560/ 728610 –

ответ

-1

Сначала вы должны убедиться, что вы загрузили свой класс DB-драйвера. Он выглядит следующим образом: Class.forName ("org.apache.derby.jdbc.EmbeddedDriver");

Это для DERBY DB. Существует отдельный класс драйверов для каждого БД, но идея такая же.

Если вы уже это сделали, проверьте, есть ли соединение tcp с сервером БД с клиентской машины , которая пытается установить соединение. Вы можете использовать: ping -t your.server.ip. Если вы получили ответ, попробуйте установить соединение с телетом с этим номером url + port (порт, который прослушивает прослушиватель DB, для Oracle это будет 1521, для Derby это 1527 ..) и убедитесь, что вы не используете получать сообщения об отказе от соединения. Если попытка подключения не удалась, проверьте, не работает ли прослушиватель БД или нет ли у вас проблемы с огнем.

Good Luck, Йоси Лев

Смежные вопросы