连接数据库错误类型:2002:权限被拒绝

我正在尝试使用以下脚本连接数据库(cxn-test.php)

<?php

$host = '155.30.136.20';//dummy ip

$user = 'abc_user';

$pass = 'xxxxxxxxx';

$dbname = 'welcome';

$link = mysqli_connect($host, $user, $pass,$dbname);

if (!$link) {

echo "Error: Unable to connect to MySQL." . PHP_EOL;

echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;

echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;

exit;

}else {

echo "success" . PHP_EOL;

}

当我在终端上尝试时

php cxn-test.php //成功

但是当我尝试在本地主机上时,出现以下错误,

curl -s http://localhost/cxn-test.php

Error: Unable to connect to MySQL. Debugging errno: 2002 Debugging error:

Permission denied

这是一个奇怪的问题,它无法在localhost上运行,但在命令行上运行良好。

回答:

在获得运行SELinux的新CentOS

7盒后,我遇到了同样的问题。我可以从命令行连接到远程MySQL数据库服务器,但是Drupal(和测试PHP脚本)却不能。

原来是SELinux安全策略。

默认情况下,策略 被禁用(这意味着您的Web服务器 无法 联系远程数据库。)

通过以下方式检查:

getsebool -a | grep httpd

如果httpd_can_network_connect_db为关闭,请通过以下方式启用它:

setsebool -P httpd_can_network_connect_db 1

(-P标志使更改永久生效,因此该设置在重新启动后仍然有效。)

以上是 连接数据库错误类型:2002:权限被拒绝 的全部内容, 来源链接: utcz.com/qa/434462.html

回到顶部