Я пытаюсь подключиться к своей базе данных, которая размещена на 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