【问题标题】:PHP MyAdmin Azure App Services - (HY000/2002): An attempt was made to access a socket in a way forbidden by its access permissionsPHPMyAdmin Azure App Services - (HY000/2002): 试图以访问权限禁止的方式访问套接字
【发布时间】:2020-01-06 21:17:37
【问题描述】:

当尝试连接到 Azure App Services (ASP.NET) MySQL 数据库(导航到“管理”链接)时,Page info returned from PHPMyAdmin 阻止我继续前进。我似乎无法在 Kudu 中找到应用程序的日志位置,并且导航到 MYSQLCONNSTR_*.ini 文件并没有为我提供所需的信息。

我尝试为 scm 和 Web 应用程序使用数据库的连接字符串,但都不起作用。我还尝试在 Kudu 环境变量中使用面向公众的 IP,但没有任何运气。

我似乎找不到连接到我的 PHPMyAdmin 实例所需的信息,现在完全迷路了。

【问题讨论】:

    标签: mysql azure phpmyadmin azure-web-app-service


    【解决方案1】:

    我的问题的解决方案在这里:https://stackoverflow.com/a/57545678/4212591

    Azure Web 服务的免费层不允许始终在线功能。因此我无法连接到服务。

    【讨论】:

      【解决方案2】:

      我不确定您要查找该文件的确切位置/路径,连接字符串存储在 D:\home\data\mysql\MYSQLCONNSTR_localdb.txt。

      如果您想自定义数据库、用户名和密码,在创建新数据库后,添加新用户名或更新密码,只需修改:

      D:\home\data\mysql\MYSQLCONNSTR_localdb.ini ,删除 D:\home\data\mysql\MYSQLCONNSTR_localdb.txt 并重新启动 WebApps。

      此外,连接字符串作为环境变量 MYSQLCONNSTR_localdb 流向您的应用程序。 env 被添加到主站点进程中。对于 Kudu 站点,可以从 D:\home\data\mysql\MYSQLCONNSTR_localdb.txt 文件中读取相同的信息。注意我们没有使用默认的 MySql 端口(3306)。事实上,每个应用程序生命周期的端口号可能会有所不同,具体取决于其在启动时的可用性。端口信息也可以作为环境变量 WEBSITE_MYSQL_PORT 提供给您的站点。

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

      附带说明,在 Azure WebApps 沙盒上 - 尝试连接到本地地址(例如 localhost、127.0.0.1)并且机器自己的 IP 将失败,除非同一沙盒中的另一个进程在目标上创建了侦听套接字港口。

      为排除应用程序代码或客户端库泄漏 TCP 套接字句柄或一次打开过多 TCP 套接字连接的请求的突发负载,扩展 Azure 应用服务计划 看看是否有什么不同。

      【讨论】:

      • 感谢您的详尽回复。事实上,我确实找到了问题的解决方案。 - 我的端口实际上是不同的,尽管我能够在 MYSQLCONNSTR_localdb.txt 文件中找到它 - 在 Web 应用程序的连接字符串配置中没有提供连接字符串 - 使用 MySQL InApp 服务明确指出它无法扩展,除了我使用免费层。我想我会让你知道我尝试过的一些建议的答案。
      • 感谢您的更新。很高兴问题得到解决。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      相关资源
      最近更新 更多