Php mysql#u connect()不';apache运行时无法工作;从命令行工作
我有一个奇怪的问题。我试图在我的服务器上编写一个简单的php网页,但mysql_connect()不连接到任何服务器,无论是本地服务器还是其他服务器。这就是它变得奇怪的地方。如果我使用相同的php脚本并从命令行运行它,则该脚本可以工作。phpinfo()表示文件(由apache运行)和命令行(以root用户身份运行)都在调用相同版本的php,加载了mysql,并且php.ini是相同的 此外,我在同一台服务器上运行MediaWiki安装,它使用本地安装的mysqld,工作正常,因此我完全不知道为什么代码不起作用。我在运行时收到的错误: 无法连接到“xxx.xxx.xxx.xxx”上的MySQL服务器(13) (出于我连接的服务器所有者的隐私考虑,该IP为x'd)Php mysql#u connect()不';apache运行时无法工作;从命令行工作,php,mysql,Php,Mysql,我有一个奇怪的问题。我试图在我的服务器上编写一个简单的php网页,但mysql_connect()不连接到任何服务器,无论是本地服务器还是其他服务器。这就是它变得奇怪的地方。如果我使用相同的php脚本并从命令行运行它,则该脚本可以工作。phpinfo()表示文件(由apache运行)和命令行(以root用户身份运行)都在调用相同版本的php,加载了mysql,并且php.ini是相同的 此外,我在同一台服务器上运行MediaWiki安装,它使用本地安装的mysqld,工作正常,因此我完全不知道为
mysql-h xxx.xxx.xxx.xxx-u user-p
如果无法连接,请跟踪原因:可能是任一端的SELinux问题(检查安全日志),或者可能是/etc/hosts
中存在别名?还可以在mysql命令行上启用带有-v-v-v
的详细消息您试图从哪个操作系统连接?听起来可能是SELinux的问题 使用SELinux,您通常可以使用 或 /usr/sbin/setsebool httpd\u can\u网络\u连接正确
没有SELinux的操作系统可能具有类似的保护机制。phpinfo()是否提供了任何线索?请尝试使用apache,然后运行脚本。我猜它默认作为当前登录的用户连接。在连接选项中指定用户名,并确保在mysql中配置了该用户。您的问题是apache运行的用户对您的数据库没有适当的权限。这就成功了!(戴着软呢帽)非常感谢:)
/usr/sbin/setsebool httpd_can_network_connect 1