我打开了谷歌结果向我抛出的有关此 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 中禁用SELINUX并system-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 能够连接到远程数据库。
| 归档时间: |
|
| 查看次数: |
25249 次 |
| 最近记录: |