LINUX.ORG.RU
ФорумAdmin

Подключение к MySQL по локальной сети

 , ,


0

1

Доброго времени суток.

Имеем такую конфигурацию:
на VmWare Workstation стоят две виртуальные машины CentOS 7, объединенные в локальную сеть. На первой машине лежит простенький сайт на Apache+PHP, состоящий из страничек авторизации и регистрации. Соответственно, данные пользователя (логин и пароль) должны сохраняться в базу данных MySQL на второй машине.

По пунктам:
1) На второй машине в MySQL создал нового пользователя user1@'192.168.xx.xx1', где '192.168.xx.xx1' - IP первой машины, и наделил его всеми правами.
2) Открыл в настройках фаервола порт 3306.

Скрипт на 1-й машине имеет текст:

<?php
// connect.php
$hostname = "192.168.xx.xx2";
$link = mysql_connect ($hostname, "user1", "mypass") or die(mysql_error());
mysql_select_db = ("db_name", $link) or die(mysql_error());
...
$login = "aaa";
$password = "bbb";
query = "insert into users (login, password) values('$login', '$password')";
$result = mysql_query($query, $link) or die(mysql_error());
?>
В упрощенном варианте.
Суть проблемы в следующем:
Если запускать скрипт из командной строки:
# php connect.php
То все хорошо работает, и на второй машине в базе появляется нужная запись.
Но если этот скрипт лежит в корневом каталоге Апача, то при запуске его из браузера (127.0.0.1/connect.php) он возвращает ошибку: Can't connect to MySQL server on '192.168.xx.xx2' (13)

Раньше вводимые данные сохранялись в локальную MySQL базу.

То есть

$hostname = "localhost";
$link = mysql_connect($hostname, "user1", "mypass");
и все хорошо работало. Теперь возникла необходимость поменять конфигурацию, и появилась проблема.

Как мне заставить его работать теперь?


В упрощенном варианте.

Попробуйте запустить как раз в этом упрощенном варианте. Если не заработает - тогда возможно у вас на серверах какие-то хитрые настройки selinux или фаервол.

goingUp ★★★★★
()

у этих чудил (mysql) «localhost» используется для подключения через unix-socket.

vel ★★★★★
()
Ответ на: комментарий от goingUp

Точно так и пробовал. Из консоли работает, из браузера - нет. Один и тот же файл. На фаерволе ничего особенного не стоит, кажется... Открыты порты :80 и :3306 на обеих машинах, и только.

yaches
() автор топика

Если запускать скрипт из командной строки:

php connect.php

То все хорошо работает, и на второй машине в базе появляется нужная запись.

Но если этот скрипт лежит в корневом каталоге Апача, то при запуске его из браузера (127.0.0.1/connect.php) он возвращает ошибку: Can't connect to MySQL server on '192.168.xx.xx2' (13)

разные пользователи. копай в настройки selinux

anonymous
()
Ответ на: комментарий от anonymous

Я пытался гуглить, но руки не оттуда растут, видать. Действительно, дурак. Спасибо, все работает.

yaches
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.