Сервер Apache A пытается подключиться к серверу mysql B. [закрыто]

У меня есть веб-сервер apache, на котором запущен PHP. Я пытаюсь установить соединение с сервера apache с сервером базы данных, на котором запущен сервер mysql. Вот список настроек на месте.

  • сервер Apache: RHEL 5.5; Сервер базы данных PHP 5.3.2
  • : Ubuntu 10.04 64bit; mysql server version 5.1
  • Нет никаких правил брандмауэра, ограничивающих соединения между этими двумя машинами. ни в нашем аппаратном брандмауэре, ни в iptables.
  • / etc / mysql / my.cnf имеет адрес привязки, равный IP-адресу машины.
  • Пропуск сети закомментирован, то есть отключен.
  • mysql запущен и на стандартном порту 3306
  • /var/run/mysqld/mysqld.sock принадлежит mysql
  • Я могу подключиться к 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)»

какие-либо предложения? Спасибо.

0
задан 7 June 2011 в 06:28

2 ответа

Просто чтобы исключить простые вещи, вы пытались запустить 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) займет время вернуть ЛОЖНО молча); вам нужно только освободить действительный идентификатор ресурса, и в этом случае (непостоянное соединение) вам все равно не нужно явно освобождать ресурс.

0
ответ дан 7 June 2011 в 06:28

Мы изменили IP-адрес машины на другой диапазон IP-адресов в нашем учреждении. из частного диапазона в публичный IP. теперь он подключается. Сейчас мы исследуем этот закрытый диапазон. Спасибо за помощь всем!

https://serverfault.com/questions/200774/apache-server-a-attempts-conn-to-mysql-server-b-times-out-what-am-i-missing / 201308 # 201308

0
ответ дан 7 June 2011 в 06:28

Другие вопросы по тегам:

Похожие вопросы: