Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Azure网站中的PDO语句,应用程序中带有MySQL_Php_Mysql_Azure_Pdo_Azure Web App Service - Fatal编程技术网

Php Azure网站中的PDO语句,应用程序中带有MySQL

Php Azure网站中的PDO语句,应用程序中带有MySQL,php,mysql,azure,pdo,azure-web-app-service,Php,Mysql,Azure,Pdo,Azure Web App Service,我已经创建了一个web应用程序,用于在Azure网站的应用程序中与MySQL通信。 但是我得到的错误是 “连接失败:SQLSTATE[HY000][2002]试图以其访问权限所禁止的方式访问套接字。” 我已确保主机、数据库、用户名和密码正确无误。 不知道这个问题,但看起来像是身份验证问题 示例代码: $pdocon = "mysql:host".$conStr["Data Source"].";dbname=".$conStr["Database"]; try { $conn = new

我已经创建了一个web应用程序,用于在Azure网站的应用程序中与MySQL通信。 但是我得到的错误是

“连接失败:SQLSTATE[HY000][2002]试图以其访问权限所禁止的方式访问套接字。”

我已确保主机、数据库、用户名和密码正确无误。 不知道这个问题,但看起来像是身份验证问题

示例代码:

$pdocon = "mysql:host".$conStr["Data Source"].";dbname=".$conStr["Database"];
try {
    $conn = new PDO($pdocon, $conStr["User ID"], $conStr["Password"]);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}
其中,如果我只打印
$pdocon
我就有值。

另外,我在我的
$conStr
数组中有正确的值。

如果您使用较低的应用程序服务计划,您可以扩展到较高的应用程序服务计划,然后进行检查

如果存在连接字符串,请签入web应用程序设置。PHPmyadmin使用MYSQLCONNSTR_uu连接到MySQL服务器。如果在“应用程序设置”中有连接字符串,请将连接字符串类型更改为“自定义”,以便在需要时仍可以保留信息或将其删除。这将强制PHPmyadmin访问MYSQLCONNSTR_localdb并连接到MySQL应用程序内服务器

参考:

如本文档()中所述,尝试连接到本地地址(例如localhost,127.0.0.1)和机器自己的IP将失败,除非同一沙箱中的另一个进程在目标端口上创建了侦听套接字。 拒绝的连接尝试(如以下尝试连接到127.0.0.1:80的示例)将导致异常错误

有关更多详细信息,请参阅以下常见问题解答():

在哪里可以找到MySql凭据(连接字符串)? 连接字符串作为环境变量MYSQLCONNSTR\u localdb流向应用程序。请注意,我们没有使用默认的MySql端口(3306)。事实上,每个应用程序生命周期的端口号可能会有所不同,具体取决于启动时的可用性。端口信息也可以作为env变量WEBSITE\u MYSQL\u端口提供给您的站点

如何将phpMyAdmin与应用程序中的MySql一起使用? phpMyAdmin默认情况下与该功能一起启用。你可以通过https://.scm.azurewebsites.net/phpMyAdmin/. 因为MySql只从主站点启动,所以在使用phpMyAdmin之前,一定要确保主站点正在运行(最简单的方法是打开AlwaysOn)。与SiteExtensions gallery中的phpMyAdmin不同,此phpMyAdmin知道MySql凭据,并将自动连接。
重要提示:如果以前通过SiteExtension gallery安装了phpMyAdmin,则必须卸载它。由于来自SiteExtension gallery的此phpMyAdmin将成为先例,并且它不支持应用程序中的MySql,因此它不会与应用程序中的MySql一起工作。

如果您使用较低的应用程序服务计划,您可以扩展到较高的应用程序服务计划,然后进行检查

如果存在连接字符串,请签入web应用程序设置。PHPmyadmin使用MYSQLCONNSTR_uu连接到MySQL服务器。如果在“应用程序设置”中有连接字符串,请将连接字符串类型更改为“自定义”,以便在需要时仍可以保留信息或将其删除。这将强制PHPmyadmin访问MYSQLCONNSTR_localdb并连接到MySQL应用程序内服务器

参考:

如本文档()中所述,尝试连接到本地地址(例如localhost,127.0.0.1)和机器自己的IP将失败,除非同一沙箱中的另一个进程在目标端口上创建了侦听套接字。 拒绝的连接尝试(如以下尝试连接到127.0.0.1:80的示例)将导致异常错误

有关更多详细信息,请参阅以下常见问题解答():

在哪里可以找到MySql凭据(连接字符串)? 连接字符串作为环境变量MYSQLCONNSTR\u localdb流向应用程序。请注意,我们没有使用默认的MySql端口(3306)。事实上,每个应用程序生命周期的端口号可能会有所不同,具体取决于启动时的可用性。端口信息也可以作为env变量WEBSITE\u MYSQL\u端口提供给您的站点

如何将phpMyAdmin与应用程序中的MySql一起使用? phpMyAdmin默认情况下与该功能一起启用。你可以通过https://.scm.azurewebsites.net/phpMyAdmin/. 因为MySql只从主站点启动,所以在使用phpMyAdmin之前,一定要确保主站点正在运行(最简单的方法是打开AlwaysOn)。与SiteExtensions gallery中的phpMyAdmin不同,此phpMyAdmin知道MySql凭据,并将自动连接。
重要提示:如果以前通过SiteExtension gallery安装了phpMyAdmin,则必须卸载它。由于此来自SiteExtension gallery的phpMyAdmin将成为先例,并且它不支持应用程序中的MySql,因此无法与应用程序中的MySql一起使用。

可能连接字符串的值不正确。该消息与错误的用户名、密码、数据库或服务器值有关

尝试检查是否以其他形式获取连接值。连接字符串存储在D:\home\data\mysql\MYSQLCONNSTR\u localdb.txt下


另一个选项可能与停止的MySQL进程相关-仅适用于免费应用程序服务计划-在这种情况下,您应该运行触发MySQL进程的任何PHP文件。

连接字符串的值可能不正确。该消息与错误的用户名、密码、数据库或服务器值有关

尝试检查是否以其他形式获取连接值。连接字符串存储在D:\home\data\mysql\MYSQLCONNSTR\u localdb.txt下


另一个选项可能与已停止的MySQL进程相关-仅适用于免费应用程序服务计划-在这种情况下,您应该运行启动MySQL进程的任何PHP文件。

您在连接中使用的主机名是什么?它需要主机名,在我的情况下,它始终是“127.0.0.1:someport”是否有帮助?还要检查您是否使用了正确的端口号。@NigelRen没有,因为它更多地是ClearDB上的MySQL,而我的端口号是正确的,我刚刚检查了。您在connec中使用的主机名是什么