#mysql #remote-access
#mysql #удаленный доступ
Вопрос:
$mysql_host = "myipaddress";
$mysql_user = "user";
$mysql_pass = "password";
$mysql_db = "mydb";
$con = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
// Check connection
if(mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_errno() ." ". mysqli_connect_error();
}
Я также использую PhpStorm и использую те же конфигурации (ipaddress не localhost), которые он подключает к базе данных (база данных находится в моей локальной системе; phpmyadmin).
Я использую phpmyadmin локально. Я также могу подключиться, используя их интерфейс и локальный хост. в PhpStorm я настроил локальное И удаленное соединение. Локальный использует localhost, а удаленный использует IP-адрес my systems за пределами мира. Я могу получить доступ к БД, используя оба метода внутри PhpStorm.
Однако, когда я помещаю приведенный выше код в документ php и запускаю его на удаленном сервере для доступа к моей локальной базе данных так же, как это делает phpstorm, я получаю сообщение об ошибке.
Когда я пытаюсь выполнить пинг 3306 через telnet (win7), я получаю текстовый текст и «Получил пакеты не в порядке.. Соединение с хостом потеряно «. Снова используя ту же информацию, я могу подключиться с помощью phpstorm. Что с этим?
Ответ №1:
Что ж, есть несколько вещей, которые вы, возможно, захотите проверить.
- Скорее всего, ваш брандмауэр фильтрует внешние подключения к порту 3306. PhpStorm и phpMyAdmin подключаются нормально, потому что они работают на одном компьютере.
- Проверьте, действительно ли ваш сервер MySQL прослушивает соединение с вашим реальным IP. Он может прослушиваться только на локальном хосте.
- Если вы находитесь за маршрутизатором, вам необходимо перенаправить 3306 на ваш фактический компьютер, на котором запущен сервер MySQL.