Назад | Перейти на главную страницу

Не удается подключиться к базе данных mysql удаленно с помощью jdbc

Я пытаюсь подключиться к своей базе данных, которая размещена на 000webhost. Я подключаюсь через SmartFoxServer, и они разрешают подключения к базе данных. Все, что вам нужно сделать, это изменить некоторые настройки в xml-файле smartfoxserver.

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

 <databaseManager active="true">
    <connectionString>jdbc:mysql://localhost:3306/db_name</connectionString>
    <userName>root</userName>
    <password></password>
    <testSql>SELECT id FROM users LIMIT 1</testSql>
  </databaseManager>

Но когда я попытался подключиться к своей внешней базе данных, которая размещена на 000webhost и выглядит так:

Используя эти настройки

<connectionString>jdbc:mysql://mysql2.000webhost.com/a5939459_data</connectionString>
<userName>a5939459_user</userName>
<password>censored</password>
<testSql>SELECT id FROM users LIMIT 1</testSql>

Я получаю следующую ошибку ...

Exception: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
Message: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driv
er has not received any packets from the server.
Description: The DBManager Test SQL failed
Please double check your SQL code and make sure that Database server is running.

РЕДАКТИРОВАТЬ:

Но когда я запускаю файлы php на моем локальном хосте и запрашиваю подключение к базе данных, как это, он работает

<?php
$db_username = "a5939459_user";
$db_name = "a5939459_data";
$db_password = "censored";
$db_host = "mysql2.000webhost.com";
mysql_connect($db_host,$db_username, $db_password, $db_name);
mysql_select_db($db_name) or die (mysql_error());
?>

Как указывали другие, проблема действительно заключалась в том, что 000webhost не разрешает удаленные подключения к базам данных mysql.

http://www.freesqldatabase.com/

Закончил использование этого для моих баз данных mysql. Это бесплатно. На самом деле это довольно надежно и быстро. Разрешены бесплатные удаленные подключения. Имеет phpMyAdmin.

Не уверен в безопасности, но в остальном отличная альтернатива.

Хост MySQL, который они предоставляют, имеет 10. IP-адрес, который невозможно маршрутизировать в Интернете. Вы можете подключиться к этому хосту только с того веб-хоста, который они предоставляют, но не с другого хоста.

Открытие порта базы данных / mysql для внешних / интернет-соединений - большая проблема безопасности. Поэтому, когда они создали вашу базу данных, они, скорее всего, назначат пользователя для подключения только с ограниченных исходных IP-адресов, в основном внутренних IP-адресов. Вам необходимо связаться с их службой поддержки, чтобы узнать, с каких исходных IP-адресов вам разрешено подключаться. Как упоминал Джон, mysql2.000webhost.com преобразуется в частный IP-адрес, а это означает, что вам, скорее всего, разрешено подключаться к нему с какого-либо другого частного IP-адреса, к которому вы можете подключиться через VPN или другие средства.

mysql2.000webhost.com.  14189   IN      A       10.1.1.102