gpt4 book ai didi

php - Azure 网站中的 PDO 语句与应用程序内的 MySQL

转载 作者:行者123 更新时间:2023-11-29 06:48:18 25 4
gpt4 key购买 nike

我创建了一个 Web 应用程序来与 MySQL In-App for Azure 网站进行通信。但是我收到错误,

“连接失败: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 数组中有正确的值。

最佳答案

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

检查您的网络应用程序设置中是否存在连接字符串。 PHPmyadmin 使用 MYSQLCONNSTR_ 连接到 MySQL 服务器。如果您在应用程序设置中有连接字符串,请将连接字符串类型更改为 Custom ,这样您仍然可以在需要时获得该信息或将其删除。这将强制 PHPmyadmin 访问 MYSQLCONNSTR_localdb 并连接到 MySQL 应用内服务器。

引用:https://blogs.msdn.microsoft.com/appserviceteam/2016/09/08/troubleshooting-faq-for-mysql-in-apppreview/

正如本文档( https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox )中提到的,尝试连接到本地地址(例如 localhost、127.0.0.1)和机器自己的 IP 将失败,除非同一沙箱中的另一个进程已在该沙箱上创建了监听套接字。目的端口。被拒绝的连接尝试(例如以下尝试连接到 127.0.0.1:80 的示例)将导致异常错误。

请参阅这些常见问题解答 (https://github.com/projectkudu/kudu/wiki/MySQL-in-app) 了解更多详细信息:

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

如何在应用程序内使用 phpMyAdmin 和 MySql?phpMyAdmin 默认启用该功能。您可以通过 https://.scm.azurewebsites.net/phpMyAdmin/访问它。由于MySql仅随主站点启动,因此在使用phpMyAdmin之前请确保主站点正在运行(最简单的方法是打开AlwaysOn)。与 SiteExtenions 库中的 phpMyAdmin 不同,此 phpMyAdmin 知道 MySql 凭据并会自动连接。重要提示:如果您之前通过 SiteExtension gallery 安装了 phpMyAdmin,则必须将其卸载。由于 SiteExtension 库中的 phpMyAdmin 将占据先例,并且它不支持 MySql In-App 感知,因此它无法与 MySql In-App 一起使用。

关于php - Azure 网站中的 PDO 语句与应用程序内的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48524980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com