Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / подключение к удаленному mysql из php / 24 сообщений из 24, страница 1 из 1
23.06.2010, 19:24
    #36704217
inell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
Добрый день!
Ситуация такая: есть два сервера: один - базы данных, второй - веб. Соответственно, используется 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
23.06.2010, 19:57
    #36704250
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
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
23.06.2010, 20:10
    #36704269
inell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
IP именно скуль-сервера. Веб-сервер висит на 192.168.15.136. Mysql запущен в стандартном режиме демона, к нему, как я говорил, из командной строки с веб-сервера под пользователем, который указан в скрипте, подключение происходит без проблем. Проблема именно при соединении из php.
Самое еще то, что в логах mysqld не зафиксировано вообще никаких обращений к серверу БД в случае запуска скрипта. То есть не пускает конкретно веб-сервер.. и не понятно, что может так избирательно действовать...
...
Рейтинг: 0 / 0
23.06.2010, 22:06
    #36704451
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
Если обычные вещи не работают, надо терзать поддержку.
Теоретически на хостинге могут закрыть исходящие соединения на основе информации об UID процесса. Оставят,например, только для 80 порта.
...
Рейтинг: 0 / 0
23.06.2010, 22:08
    #36704458
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
и кстати, зачем вам вообще удаленный сервер? хостинг где php часом не бесплатный?
...
Рейтинг: 0 / 0
23.06.2010, 23:16
    #36704599
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
> Если обычные вещи не работают, надо терзать поддержку.

+1

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

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

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

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


если с апачем то потребуется остановить все остальные приложения и запустить apache под наблюдением отладчика strace -f . будет очень много информации, но где-то там вы увидите пытается ли открыться соединение, куда именно и как.
...
Рейтинг: 0 / 0
25.06.2010, 15:08
    #36708362
gR4mm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
имеет смысл глянуть phpinfo()?
...
Рейтинг: 0 / 0
25.06.2010, 15:31
    #36708450
inell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
был удивлен, "/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
25.06.2010, 15:49
    #36708505
gR4mm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
inellбыл удивлен, "/usr/bin/php вашскрипт.php" работает, обращение к базе данных идет... а вот из-под апача - нет.
phpinfo() про mysql
авторConfigure Command './configure' ... '--without-mysql' ...
Пересобрать наверно надо пхп.
...
Рейтинг: 0 / 0
25.06.2010, 15:59
    #36708553
inell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
gR4mm , да, меня эта строчка тоже удивила. Однако-таки из шелла скрипт работает
...
Рейтинг: 0 / 0
25.06.2010, 16:27
    #36708657
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подключение к удаленному mysql из php
gR4mm,так бывает нужно в пакетных дистрибутивах --without-чевототам, а потом делают отдельные пакеты с библиотеками, это нормально. если не пытаться неумело собирать самому.

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


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