设置:
两个独立的盒子:
- Fedora 15、Apache、PHP 和 PHP 模块
- Fedora 15,MySQL
我无法从 Apache Web 服务器连接到 MySQL。
<?php
echo "<br>begin test<br>";
mysql_connect('hostname[FQDN]','username','password') or ("Error" . mysql_error());
echo "<br>end test<br>";
?>
当 Apache 提供该页面时,显示了“开始测试”文本,但没有显示 MySQL 错误或“结束测试”文本。
我能够使用 MySQL 工作台从远程计算机的端口 3306 连接到 MySQL DB。用户和 IP 地址的权限和访问权限已完全开放 (%),以避免出现这方面的问题。
答案1
不要忘记,、mysql_connect
等mysql_error
不是 PHP 的一部分。它们是一个扩展。
如果您想测试 php 是否具有这些功能,您可以做一个小测试,如下:
if(!function_exists('mysql_connect'))
echo 'MySQL extension not installed';
你应该在你的 MySQL Box 上mysql
安装mysql-server
您应该已经在 Apache 机器上php
安装php-mysql
了。如果尚未安装,php-mysql
请安装它:yum -y install php-mysql
然后重新启动 Apache。
答案2
跑步
$ netstat -l
您应该看到 mysql 服务器正在监听端口 3306。如果是 127.0.0.1,则服务器仅监听环回接口。my.cnf
在这种情况下,请修复您的问题。
答案3
问题已解决。我所做的更改是使用 SElinux 并运行setsebool -P httpd_can_network_connect=1
或运行setenforce=0
宽容模式