Настроить:
Две отдельные коробки:
Я не могу подключиться к MySQL с веб-сервера Apache.
<?php
echo "<br>begin test<br>";
mysql_connect('hostname[FQDN]','username','password') or ("Error" . mysql_error());
echo "<br>end test<br>";
?>
отображается текст «начало теста», но отсутствует ошибка MySQL или текст «конец теста», когда Apache обслуживает страницу.
Я могу подключиться к базе данных MySQL с помощью рабочей среды MySQL на порту 3306 с удаленного компьютера. Привилегии и доступ к пользователю и IP-адресу оставлены полностью открытыми (%), чтобы избежать каких-либо проблем в этих отношениях.
Не забывай это, mysql_connect
, mysql_error
и т. д. не являются частью PHP. Они являются продолжением.
Если вы хотите проверить, есть ли у php эти функции, вы можете провести небольшой тест, например:
if(!function_exists('mysql_connect'))
echo 'MySQL extension not installed';
У вас должно быть mysql
и mysql-server
установлен на вашем MySQL Box
У вас должно быть php
и php-mysql
установлен на вашем сервере Apache. Если вы не установили php-mysql
установите это: yum -y install php-mysql
а затем перезапустите Apache.
Проблема решена. Изменение, которое я сделал, касалось SElinux и запуска setsebool -P httpd_can_network_connect=1
или бег setenforce=0
который является разрешительным режимом
Бегать
$ netstat -l
Вы должны увидеть, что сервер mysql прослушивает порт 3306. Если это 127.0.0.1, сервер прослушивает только интерфейс обратной связи. Исправьте свой my.cnf
в таком случае.