Как я могу разрешить удаленное соединение MySQL через HTTP / PHP?

Я использую CentOS 7 на всех серверах, упомянутых ниже.

I ' и через PHP модуль MySQL работает.

Вот права доступа к 192.168.1.167 (сервер БД)

+---------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost                                                                                   |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*DB17DD535D122AED147A61C30CD5D01FB3BC5433' |
| GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost'                                                      |
+---------------------------------------------------------------------------------------------------------------+

+-------------------------------------------------------------------------------------------------------------------+
| Grants for demouser@192.168.1.168                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'192.168.1.168' IDENTIFIED BY PASSWORD '*DB17DD535D122AED147A61C30CD5D01FB3BC5433' |
| GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'192.168.1.168'                                                      |
+-------------------------------------------------------------------------------------------------------------------+

netstat на 192.168.1.167 показывает:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2892/mysqld         
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1704/master         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1053/sshd 

Как я могу разрешить удаленное соединение MySQL через HTTP / PHP, но только для запросов, инициируемых с вышеупомянутого WEB-сервера?

0
задан 22 January 2017 в 11:55
1 ответ

Мне удалось определить, что SELinux был причиной сбоя соединения.

Как упоминалось в исходном потоке, я отключил SELinux и брандмауэр на сервере DB , который, как я полагал, блокировал удаленное соединение с сервером WEB .

Причиной проблемы с подключением был SELinux на WEB сервер.

Я временно отключил его, используя setenforce 0 , чтобы установить его в разрешающий режим.

Все работает.

Я повторно -enabled SELinux и брандмауэр на сервере DB . Я все еще могу установить соединение с удаленной базой данных через скрипт PHP на WEB сервере.

Теперь я могу подтвердить, что проблема была на WEB сервере, инициирующем соединение.

Я повторно включил SELinux на WEB сервере и использовал следующую команду, чтобы установить логическое значение для SELinux на WEB сервере.

setsebool -P httpd_can_network_connect_db 1

В настоящее время у меня SELinux активен на обоих серверах WEB и DB в принудительном режиме , и удаленное соединение MySQL все еще может успешно пройти.

В других обсуждениях, за которыми я не следил, я читал: на каком сервере настраивать логические значения SELinux .

Надеюсь на это. эта ветка может помочь сэкономить время всем, кто сталкивается с той же проблемой, что и я.

2
ответ дан 4 December 2019 в 13:35

Теги

Похожие вопросы