powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / подключение к удаленному mysql из php
24 сообщений из 24, страница 1 из 1
подключение к удаленному mysql из php
    #36704217
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Ситуация такая: есть два сервера: один - базы данных, второй - веб. Соответственно, используется Mysql и PHP. Коннект к базе должен происходить не на локалхост, а на другой сервер. Но дело в том, что скрипты пишут:
Can't connect to MySQL server on '192.168.15.135' (13)
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
файла mysql.sock, к слову сказать, нет вообще (на машине веб-сервера не установлен mysql-сервер). Но я так понимаю, что он пытается подключиться к локалхосту, когда не может найти удаленный хост. Так вот, запара в том, что не может найти удаленный.
Из командной строки подключение к удаленному mysql функционирует, сервер пинугется. Подскажите, пожалуйста, куда копать?
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704250
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inell,

Ерунда какая то.... Простейшее
Код: plaintext
1.
2.
<?php
$link = mysql_connect('192.168.15.135:3306', 'username', 'password');
?>
тоже выдаёт ошибку? 192.168.15.135 - это точно айпи MySQL-сервера, а не вебсервера? Мускуль запущен на стандартном порту?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704269
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IP именно скуль-сервера. Веб-сервер висит на 192.168.15.136. Mysql запущен в стандартном режиме демона, к нему, как я говорил, из командной строки с веб-сервера под пользователем, который указан в скрипте, подключение происходит без проблем. Проблема именно при соединении из php.
Самое еще то, что в логах mysqld не зафиксировано вообще никаких обращений к серверу БД в случае запуска скрипта. То есть не пускает конкретно веб-сервер.. и не понятно, что может так избирательно действовать...
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704451
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если обычные вещи не работают, надо терзать поддержку.
Теоретически на хостинге могут закрыть исходящие соединения на основе информации об UID процесса. Оставят,например, только для 80 порта.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704458
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и кстати, зачем вам вообще удаленный сервер? хостинг где php часом не бесплатный?
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704599
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Если обычные вещи не работают, надо терзать поддержку.

+1

Возможно, модуль php-mysql сконфигурирован каким то странным образом, что разрешает коннект только через сокет на локалхост. Это на уровне предположения. Не знаю точно, возможно ли так накрутить.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704609
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Can't connect to MySQL server on '192.168.15.135' (13) - а кстати в скобках это у нас код ошибки mysql.
в линуксе 13 означает OS error code 13: Permission denied
То есть, это почти наверняка файрволл запрещает.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704703
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробую утром в файервол посмотреть...
речь идет не о хостинге, а о собственных внутреорганизационных серверах, так что терзаться самому))
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704705
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда для чистоты эксперимента нужно переключиться в того пользователя из под которого запускается php (su - ) и тогда уже подключаться клиентом.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36704988
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал экмперимент, правда, под пользователем apache заходить не стал, так как неизвестен его пароль по умолчанию. Попробовал запустить сервер от обычного локального пользовтаеля, из которого запускал mysql-клиент. Ситуация та же...
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36705010
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эксперимент должен быть такой: на удаленной машине запускаете MySQL-клиента и пытаетесь осуществить коннект к серверу.

Код: plaintext
C:\mysql\bin>mysql -h  192 . 168 . 15 . 135  -P  3306  -u root -p

Если соединиться удалось, значит внешний доступ есть (тогда смотрим машину с PHP), если не удалось, значит на сервере где запущен MySQL ограничен доступ (проверяем локально наличие коннекта из клиента с указанными параметрами или смотрим через netstat висит ли какой-нибудь сервис на порту 3306), затем копаемся в настройках файрвола (должен быть открыт порт 3306)
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36705036
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inell, и что, root тоже неизвестен? нету у apache/www-data/nobody пароля никакого вообще.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36706609
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov, вот именно, что из шелла коннектится нормально, на стандартный порт, а из скрипта не хочет.

root известен, конечно же, а с паролем на апач я протупил)
Посмотрел в фаервол (ОС, кста, CentOS 5.4), там никаких блокировок исходящих подключений нет.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36706820
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inell, ну еще пяток вариантов заблокировать сеть можно придумать в этом случае. но зачем, если можно просто проверить?
переключитесь в пользователя apache (su - apache) и уже оттуда запустите программу-клиент "mysql -h.."
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708181
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
под пользователе apache подключится.... а из скрипта - нет
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708353
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inell, сложно сказать что-то по переписке.
как насчет проверить верность кода php с помощью запуска php без апача ?
/usr/bin/php вашскрипт.php ?


если с апачем то потребуется остановить все остальные приложения и запустить apache под наблюдением отладчика strace -f . будет очень много информации, но где-то там вы увидите пытается ли открыться соединение, куда именно и как.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708362
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеет смысл глянуть phpinfo()?
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708450
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
был удивлен, "/usr/bin/php вашскрипт.php" работает, обращение к базе данных идет... а вот из-под апача - нет.
phpinfo() про mysql
авторConfigure Command './configure' '--build=i686-redhat-linux-gnu' '--host=i686-redhat-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--with-mime-magic=/usr/share/file/magic.mime' '--without-sqlite' '--with-libxml-dir=/usr' '--with-xml' '--with-system-tzdata' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-pdo' '--disable-xmlreader' '--disable-xmlwriter'

additional .ini files parsed /etc/php.d/dbase.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini

mysqlMySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 5.0.77
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_INCLUDE -I/usr/include/mysql
MYSQL_LIBS -L/usr/lib/mysql -lmysqlclient

mysqliMysqlI Support enabled
Client API library version 5.0.77
Client API header version 5.0.45
MYSQLI_SOCKET /var/lib/mysql/mysql.sock
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708505
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inellбыл удивлен, "/usr/bin/php вашскрипт.php" работает, обращение к базе данных идет... а вот из-под апача - нет.
phpinfo() про mysql
авторConfigure Command './configure' ... '--without-mysql' ...
Пересобрать наверно надо пхп.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708553
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gR4mm , да, меня эта строчка тоже удивила. Однако-таки из шелла скрипт работает
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36708657
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gR4mm,так бывает нужно в пакетных дистрибутивах --without-чевототам, а потом делают отдельные пакеты с библиотеками, это нормально. если не пытаться неумело собирать самому.

есть подозрения, что профиль selinux запрещает апачу внешние соединения. я бы его (selinux и apparmor )вообще запретил.
по поиску находится масса howto как это сделать (http://www.cyberciti.biz/faq/howto-disable-httpd-selinux-security-protection/). Очевидно, проблема довольно частая.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36710690
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо на наводку!
Только в моем случае файл называется /etc/selinux/targeted/policy и выглядит несколько странно. Да, там есть строчка про httpd_disable_trans, а вот дальше у все ппараметром идет что-то типа набора <97>^@^@^@^@^@^@^@^R^@^@^@ и потом в строку следующий параметр и так далее. как это править, не подскажете? semanage не проинстален
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36711435
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может файл побился? да удалите вы вообще этот selinux, чтобы хотя бы проверить в нем ли дело.
...
Рейтинг: 0 / 0
подключение к удаленному mysql из php
    #36712389
inell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо! проблема была именно в SELinux, отключи ее для веб-сервера - все встало на свои места!
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / подключение к удаленному mysql из php
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]