Обращение из CGI скрипта к MySQL не проходит... (SentOS 6)

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

05 апр 2016, 16:51

Совсем все непонятно...
Скрипт локально подключается к MySQL
А когда через Apache тот же самый скрипт вызываю:

# ERR: Can't connect to MySQL server on '127.0.0.1' (13) (MySQL error code: 2003, SQLState: HY000 )

Уже нервы не выдерживают...
Извините....
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

05 апр 2016, 17:06

Куда-то делось сообщение... Ха....
Пардон... Все нормально...
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

06 апр 2016, 08:13

Спокойно описываю ситуацию:

Я написал скрипт с помощью MySQL connector c++, который обращается к MySQL.
Когда я запускаю его с консоли сервера SentOS. Все работает нормально.

Running 'SELECT 'Hello World!' AS _message'...
... MySQL replies: Hello World!
... MySQL says it again: Hello World!

А кода я вызываю его с удаленного компьютера, к примеру
http://10.208.22.16/cgi-bin/test1

Он выдаёт:
Running 'SELECT 'Hello World!' AS _message'...
# ERR: SQLException in test1.cpp(main) on line 47
# ERR: Can't connect to MySQL server on '127.0.0.1' (13) (MySQL error code: 2003, SQLState: HY000 )

Если выключаю MySQL - картинка не меняется. Что-то не дает скрипту обратится к MySQL.

К примеру: http://sigmavet.ru/cgi-bin/test1 - На такой же SentOS - все работает

А на моём сервере (такой же SentOS) - такая же версия SentOS, Apache и MySQL - не работает. Хоть ты тресни!
Специально собирал, что бы отрабатывать скрипты дома, а на рабочий сервер только выкладывать результаты...

Хоть что-нибудь посоветуйте.... Всю голову сломал...

С уважением,
Павел.
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

06 апр 2016, 15:57

Добрый вечер, модератор!

Я утром добавил сообщение, а оно все модерируется... :)
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

06 апр 2016, 16:00

AiK писал(а):Ну я с линуксом скорее на Вы... Как я понимаю, курить надо содержимое файла /etc/my.cnf (не в курсе где конфиг мускуля в центоси штатно валяется) и медитировать над наличием строчки

Код: Выделить всё

[mysqld]
bind-address = 127.0.0.1

А у меня не создается /etc/my.cnf (!!!)
Не знаю почему...
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

07 апр 2016, 00:07

Ну, минимум сервер у нас запущен и вроде как слушает 3306 порт при любом варианте обращений.

Последовательность действий

1. telnet 127.0.0.1 3306 или telnet localhost 3306
2. Если не прокатило - копаем настройки iptables
Даже самый дурацкий замысел можно воплотить мастерски
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

07 апр 2016, 07:54

AiK писал(а):Ну, минимум сервер у нас запущен и вроде как слушает 3306 порт при любом варианте обращений.

Последовательность действий

1. telnet 127.0.0.1 3306 или telnet localhost 3306
2. Если не прокатило - копаем настройки iptables

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape chararcter is '^]'
4
5.1.73/%g[qIYp0z8IE] (Jzl
Connection closed by foreign host.
--------------------
Тоже самое и для localhost

И что это значит?

На работающем сервере, где все работает - та же картина

sigmavet.ru/cgi-bin/test1

Running 'SELECT 'Hello World!' AS _message'...
... MySQL replies: Hello World!
... MySQL says it again: Hello World!

А у меня:

Running 'SELECT 'Hello World!' AS _message'...
# ERR: SQLException in test1.cpp(main) on line 48
# ERR: Can't connect to MySQL server on '127.0.0.1' (13) (MySQL error code: 2003, SQLState: HY000 )
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

07 апр 2016, 11:38

По моему тут какая-то проблема с доступом исполнения скриптов в Apache.
Из консоли все скрипты работают!
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

07 апр 2016, 16:43

И что это значит?
Это значит, что удалось соединится с mysql сервером. То есть Firewall не при делах. Эту проблему исключили.
По моему тут какая-то проблема с доступом исполнения скриптов в Apache.
Возможно. Надо в консоли зайти от имени пользователя апача и попытаться выполнить скрипт...

А вообще теперь гуглится вот такое волшебное сочетание

Код: Выделить всё

 
setsebool httpd_can_network_connect=1
Даже самый дурацкий замысел можно воплотить мастерски
paolo64
Сообщения: 28
Зарегистрирован: 21 сен 2015, 13:30

07 апр 2016, 16:49

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!
УРААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААА!!!!!!

ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ЧЕТВЕРО СУТОК ПРАКТИЧЕСКИ НЕ СПАЛ!!!!!!!!!!

А как вам удалось это найти??!!!

:)

А setsebool httpd_can_network_connect=1 - сохранится?
Ответить