连接DATABASE错误类型:2002:权限被拒绝

I am trying to connect the database with the following script(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;
}

When I am trying on the terminal

php cxn-test.php //success

But when I am trying on localhost i am getting the following error,

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

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

This is strange issue it's not working on the localhost but working good on command line.

duanjiao8007
duanjiao8007 仅限远程服务器
接近 4 年之前 回复
dongti7838
dongti7838 通过命令行访问它时,您是否进入远程服务器,或者运行localhost的计算机?
接近 4 年之前 回复
dprc88435
dprc88435 它位于我使用ip远程连接的另一台服务器上
接近 4 年之前 回复
dongyao4419
dongyao4419 数据库位于何处?它是在Docker容器中吗?你试过mysqli或PDOmysql吗?
接近 4 年之前 回复

1个回答



在获得运行SELinux的新CentOS 7盒后,我遇到了同样的问题。 我可以从命令行连接到我的远程MySQL数据库服务器,但Drupal(和测试PHP脚本)不能。</ p>

问题原来是SELinux安全策略。</ p >

默认情况下,策略 httpd_can_network_connect_db </ strong>已禁用(表示您的Web服务器无法</ em>联系远程数据库。)</ p>
\ n

通过以下方式检查:</ p>

getsebool -a | grep httpd </ code> </ p>

如果httpd_can_network_connect_db为Off,请通过以下方式启用它:</ p>

  setsebool -P httpd_can_network_connect_db 1 
</ code > </ pre>

(-P标志使更改成为永久更改,因此设置可以在重新启动后继续存在。)</ p>
</ div>

展开原文

原文

I had the same issue after getting a new CentOS 7 box, running SELinux. I could connect to my remote MySQL DB server from the command line, but Drupal (and test PHP scripts) could not.

The issue turned out to be the SELinux security policies.

By default, the policy httpd_can_network_connect_db is disabled (meaning that your web server cannot contact a remote DB.)

Check this via:

getsebool -a | grep httpd

If httpd_can_network_connect_db is Off, enable it via:

setsebool -P httpd_can_network_connect_db 1

(The -P flag makes the change permanent, so the setting survives a reboot.)

dongsheng9203
dongsheng9203 让我永远找到这个(使用Redhat)。 非常感谢。
一年多之前 回复
doushi1960
doushi1960 像魅力一样工作。 感谢你。
2 年多之前 回复
doulang9521
doulang9521 我有同样的问题,只能通过禁用SELinux来解决。 感谢您对突出显示的评论
3 年多之前 回复
dqce48404
dqce48404 不错,+1不告诉别人关掉SELinux!
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐