У меня есть веб-сервер apache, на котором запущен PHP. Я пытаюсь установить соединение с сервера apache с сервером базы данных, на котором запущен сервер mysql. Вот список настроек на месте.
, вот мой сценарий подключения php:
<?php
$host="555.555.55.55";
$user="some_user";
$pass="some_pass";
$conn = mysql_connect($host, $user, $pass);
if ($conn === FALSE) { echo mysql_error(); }
else { echo 'Connected'; mysql_close($conn); }
?>
попытка выполнить php-скрипт в браузере, размещенном на сервере Apache, дает только следующее: «Не удалось подключиться: не удается подключиться к серверу MySQL на '555.555.55.55' (4)»
какие-либо предложения? Спасибо.
Просто чтобы исключить простые вещи, вы пытались запустить ps -A | grep mysqld
на сервере Ubuntu? Если здесь нет текстового вывода, сервер фактически не работает.
Можете ли вы подключиться к серверу MySQL, запустив mysql -u root -p
из терминала на машине с Ubuntu? Если да, можете ли вы также подключиться, используя mysql -u root -p -h <ubuntu-server-ip>
с вашего сервера Red Hat?
Ваш PHP-скрипт выглядит неплохо, хотя для чего стоит, вы обычно захотите сделать более явное сравнение при проверке переменной $ conn Например:
if ($conn === FALSE) { echo mysql_error(); } else { echo 'Connected'; }
Кроме того, если $conn
установлено на FALSE
, вызов mysql_close($conn)
внизу является пустой тратой серверного времени (mysql_close(FALSE)
займет время вернуть ЛОЖНО молча); вам нужно только освободить действительный идентификатор ресурса, и в этом случае (непостоянное соединение) вам все равно не нужно явно освобождать ресурс.
Мы изменили IP-адрес машины на другой диапазон IP-адресов в нашем учреждении. из частного диапазона в публичный IP. теперь он подключается. Сейчас мы исследуем этот закрытый диапазон. Спасибо за помощь всем!