数据库连接错误:错误类型2002 - 权限拒绝
P粉757640504
P粉757640504 2023-08-24 19:54:00
[PHP讨论组]

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

<?php
$host = '155.30.136.20';//虚拟IP 
$user = 'abc_user';
$pass = 'xxxxxxxxx';
$dbname = 'welcome';
$link = mysqli_connect($host, $user, $pass,$dbname);
if (!$link) {
    echo "错误:无法连接到MySQL。" . PHP_EOL;
    echo "调试错误号:" . mysqli_connect_errno() . PHP_EOL;
    echo "调试错误信息:" . mysqli_connect_error() . PHP_EOL;
    exit;
}else {
    echo "成功" . PHP_EOL;
}

当我在终端上尝试时

php cxn-test.php //成功

但是当我在本地主机上尝试时,我遇到了以下错误:

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

错误:无法连接到MySQL。 调试错误号:2002 调试错误信息:权限被拒绝

这是一个奇怪的问题,在本地主机上不起作用,但在命令行上工作正常。

P粉757640504
P粉757640504

全部回复(1)
P粉041881924

在获取一个运行SELinux的新CentOS 7盒子后,我遇到了相同的问题。我可以通过命令行连接到远程MySQL数据库服务器,但Drupal(和测试PHP脚本)无法连接。

问题最终是由SELinux安全策略引起的。

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

通过以下命令检查:

getsebool -a | grep httpd

如果httpd_can_network_connect_db为Off,请通过以下命令启用:

setsebool -P httpd_can_network_connect_db 1

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号