首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP in-app随机更改端口

PHP in-app随机更改端口
EN

Stack Overflow用户
提问于 2017-01-31 04:50:22
回答 2查看 1.1K关注 0票数 1

背景:我有一个PHP在Azure上运行,带有MySQL in-app。它已经运行了几个月,突然开始收到SQL错误--“试图以它的访问权限禁止的方式访问一个套接字”,我在CMS中进行了挖掘,并比较了Azure提供的连接字符串,发现App中的Azures端口无缘无故地改变了一个新端口。迅速更新它,它现在正在工作。但问题是,我必须从一个抱怨这件事的顾客那里找到一条艰难的路。

问题:为什么会更改端口,它还会这样做吗?我如何阻止它在未来的变化,或者明确地指定我希望它将来使用的端口?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-01 04:24:37

@Suwatch 这里已经回答了这个问题,它说:

VM可以承载多个WebApps,因此可以承载多个应用程序内的MySQL进程。当我们启动MySql进程时,我们尝试使用与前面相同的端口。然而,它可能被其他服务或其他应用程序中的MySQL所采用.因此,港口可能会改变。此外,web应用程序可以从一个VM移动到另一个VM,可用端口集将有所不同。 为了编写稳定的客户端应用程序,请确保从env变量读取连接信息。有关更多详细信息,请参阅

票数 1
EN

Stack Overflow用户

发布于 2019-05-11 17:49:35

下面是我解决问题的方法:我的应用程序是一个ASP核心WebAPI

代码语言:javascript
复制
string connection = Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
var dbhost = Regex.Match(connection, @"Data Source=(.+?);").Groups[1].Value;
var server = dbhost.Split(':')[0].ToString();
var port = dbhost.Split(':')[1].ToString();
var dbname = Regex.Match(connection, @"Database=(.+?);").Groups[1].Value;
var dbusername = Regex.Match(connection, @"User Id=(.+?);").Groups[1].Value;
var dbpassword = Regex.Match(connection, @"Password=(.+?)$").Groups[1].Value;

string connectionString2 = $@"server={server};userid={dbusername};password={dbpassword};database={dbname};port={port};pooling = false; convert zero datetime=True;";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41949852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档