当前位置: 首页 > 面试题库 >

php无法以错误13连接到mysql(但命令行可以)

利思源
2023-03-14
问题内容

我在新安装的服务器中遇到了奇怪的情况,这次Google似乎帮不了我。我无法从我的PHP代码连接到(远程)mysql。当我尝试从同一服务器上的命令行连接时,连接成功。

无法连接:无法连接到“ MYSQL.SERVER”上的MySQL服务器(13)

这是代码和来自命令行的连接尝试

[u1@bosko httpdocs]$ cat  test.php

<?
$link = mysql_connect('MYSQL.SERVER', 'testusersimon', '123456');
if (!$link) {
    die('Could not connect: ' .  mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

[u1@bosko httpdocs]$ mysql -h MYSQL.SERVER -utestusersimon --password=123456
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 352108
Server version: 5.0.45-community-nt-log MySQL Community Edition (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye

我尝试同时在mod_php模式和FastCGI中运行php脚本,检查phpinfo()以及mysql,mysqli和pdo_mysql部分中是否显示了“
/etc/php.d/mysql.ini”。

但是结果是一样的,我知道这很简单,但我做不到。请帮忙 :)

编辑:问题出在SElinux上

setsebool -P httpd_can_network_connect_db=1

是解决方案。


问题答案:
setsebool -P httpd_can_network_connect=1

对于访问此问题的许多人来说,这也将是一个有用的CLI命令,因为它允许mysql_connet()从HTTP(Apache)请求内到远程MySQL数据库服务器的连接,确保启用通常位于/
etc /中的SElinux中来自httpd的网络连接。 selinux / config(默认禁用,以防止黑客使用您的httpd攻击其他计算机)。



 类似资料:
  • 请给我一个机会解释我的神秘处境。 我的Glass乐于服务器无法连接到远程MySQL数据库。 我检查了以下说明 ping 到远程主机 - 正常 通过 mysql 命令连接 (mysql -h remote -u user -p) - OK SSH 端口转发(ssh -L13306:本地主机:3306 远程)并配置 Glassfish 以使用它 (jdbc://127.0.0.0:13306/mydb

  • 问题内容: 在Mac上如何从命令行连接到MySQL?(即给我看代码) 我正在做一个PHP / SQL教程,但首先假设您已经在MySQL中。 问题答案: 看到这里http://dev.mysql.com/doc/refman/5.0/en/connecting.html 上面的选项表示: 查看链接,那里有详细的链接! 如Rick所述,您可以通过不这样传递密码来避免将密码作为命令的一部分传递: 编辑此

  • 我正在研究ECDSA-WITH-SHA256的静脉签名。我的代码库来自openssl v1。0.1h,可以使用openssl命令行运行。但我的代码在执行以下代码时返回错误: PKCS7_dataInit代码如下: PKCS7_bio_添加_摘要返回错误,因此验证失败。 我像下面的命令行工具一样构造完全相同的命令行参数:[openssl smime]-verify-inform DER-in sig

  • 问题内容: 关闭。 这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 我在linux框IP = 192.168.1.100上安装了mysql服务器,但是当我尝试连接到该IP时总是出错(111)。但是使用localhost并且127.0.0.1可以。 从另一台计算机连接它也会出现错误111。 在这种情况下,使用local

  • 在我的应用程序中,我可以使用IP地址连接到服务器,但当我尝试使用DNS主机名连接时,我无法通过Android emulator连接。在logcat中,我得到以下错误: 07-10 10:22:42.312:我/编导(848):跳过了45帧!应用程序可能在其主线程上做了太多工作。 07-10 10:24:00.181:我/编导(848):跳过了35帧!应用程序可能在其主线程上做了太多工作。 07-1

  • 我正在尝试连接到MySQL服务器,但出现无法处理的错误。 java.sql.SQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃。com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)com.mysql.cj.jdbc.excepti