【发布时间】:2019-03-07 05:45:51
【问题描述】:
我正在尝试使用 PHP 连接 CRUD Simple,连接 MySQL 中的数据库。
问题是在 mysql_connect 函数中,在主机变量中,如果我传递字符串localhost,它会连接并显示数据库的信息。问题是当我输入 MySQL 数据库所在主机的 IP 时,它显示 Permission denied。
我已经使用以下命令将权限发送给用户carlos:
GRANT ALL PRIVILEGES ON * . * TO 'carlos'@'%';
这是连接代码,其余代码不影响,因为这组是程序的第一行:
$link = mysqli_connect("192.168.0.18:3306", "carlos", "abc123", "distribuidos") or die ('Error. ' . mysqli_connect_error());
使用本地主机,连接工作:
$link = mysqli_connect("localhost", "carlos", "abc123", "distribuidos") or die ('Error. ' . mysqli_connect_error());
需要注意的是,我还配置了防火墙,端口已经打开,在本例中为3306,如果我从另一台机器上使用命令mysql -u carlos -h 192.168.0.18 -p 连接,则可以毫无问题地连接我。
我正在使用 php 7.3 和 CentOS 7。
解决方案
我的解决方案是在 Linux 上执行下一条命令:sudo setsebool -P httpd_can_network_connect 1
【问题讨论】: