我正在尝试将CRUD Simple与PHP连接,并在MySQL中连接数据库。
问题是在mysql_connect函数的主机变量中,如果我传递字符串localhost
,它将连接并向我显示数据库信息。问题是,当我将MySQL数据库所在的主机的IP放置在主机上时,它显示出拒绝权限。
我已经使用以下命令将特权发送给用户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
连接也没有问题。< / p>
我正在使用php 7.3和CentOS 7。
解决方案
我的解决方案是在Linux上执行下一个命令:sudo setsebool -P httpd_can_network_connect 1
答案 0 :(得分:1)
您可以检查的三件事
或
或
sudo setsebool -P httpd_can_network_connect 1