使用php函数无法连接mysql服务器(13)

use*_*824 1 mysql php

我打开了谷歌结果向我抛出的有关此 MySQL 错误的所有链接。我一直在花几个小时来让它工作..

我有一个 Web 服务器,(apache in centos installed in host B, and want to connect to a MySQL server in host A)两个主机都在同一个子网中。

我可以使用 CLI 访问远程 mysql mysql -u root -h <ip> -p

但无法使用PHP函数连接到mysql mysql_connect()

我已经 在 /etc/my.cnf 中禁用SELINUXsystem-config-firewall-tui包含以下语法

  [client]
  port =3306
  socket = /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

在网上找到的一些解决方案告诉我输入setbool与 selinux 相关的,但事实是,SELINUX 已经被禁用。

奇怪的是,我可以通过 CLI 连接,但不能在 php 函数中

另外,我php-mysql在两个主机上都有


这是我的 main.php

<?php
mysql_connect('192.168.8.136','root','admin') or die (mysql_error());
echo "Connected to MySQL server";

mysql_select_db("web") or die (mysql_error());
echo "Connected to Database";
?>
Run Code Online (Sandbox Code Playgroud)

这是我的 /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld/log
id-file=/var/run/mysqld/mysqld.pid
Run Code Online (Sandbox Code Playgroud)

selinux状态

SELinux status: disabled

netstat -atn tcp 0 0 0.0.0.0:3306 0.0.0.0:* Listen

在托管 apache 的客户端收到错误:

[error] [client 127.0.0.1] PHP warning: mysql_connect(); cant connect to mysql server (13) in /var/www/html/main.php on line 2

小智 6

我可以从命令行 mysql 从服务器 B 访问,但我也无法通过 httpd 连接我的远程数据库 - 我知道你说双方都禁用了 selinux,但是在我的情况下,httpd 服务器端需要 selinux

setsebool httpd_can_network_connect_db=1 
Run Code Online (Sandbox Code Playgroud)

使 apache 能够连接到远程数据库。