php无法以错误13连接到mysql(但命令行可以)

我在新安装的服务器中遇到了奇怪的情况,这次Google似乎帮不了我。我无法从我的PHP代码连接到(远程)mysql。当我尝试从同一服务器上的命令行连接时,连接成功。

无法连接:无法连接到“ MYSQL.SERVER”上的MySQL服务器(13)

这是代码和来自命令行的连接尝试

[u1@bosko httpdocs]$ cat  test.php

<?

$link = mysql_connect('MYSQL.SERVER', 'testusersimon', '123456');

if (!$link) {

die('Could not connect: ' . mysql_error());

}

echo 'Connected successfully';

mysql_close($link);

?>

[u1@bosko httpdocs]$ mysql -h MYSQL.SERVER -utestusersimon --password=123456

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 352108

Server version: 5.0.45-community-nt-log MySQL Community Edition (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit

Bye

我尝试同时在mod_php模式和FastCGI中运行php脚本,检查phpinfo()以及mysql,mysqli和pdo_mysql部分中是否显示了“

/etc/php.d/mysql.ini”。

但是结果是一样的,我知道这很简单,但我做不到。请帮忙 :)

编辑:问题出在SElinux上

setsebool -P httpd_can_network_connect_db=1

是解决方案。

回答:

setsebool -P httpd_can_network_connect=1

对于访问此问题的许多人来说,这也将是一个有用的CLI命令,因为它允许mysql_connet()从HTTP(Apache)请求内到远程MySQL数据库服务器的连接,确保启用通常位于/

etc /中的SElinux中来自httpd的网络连接。 selinux / config(默认禁用,以防止黑客使用您的httpd攻击其他计算机)。

以上是 php无法以错误13连接到mysql(但命令行可以) 的全部内容, 来源链接: utcz.com/qa/401173.html

回到顶部