我有一个连接到MySQL数据库的ASP.NET MVC应用程序,它可以很好地与我本地的MySQL服务器一起工作。我正在尝试使用他们的新功能:MySQL in-app for Web Apps来将应用程序推送到azure
之前,我在azure中使用SQL服务器数据库测试了相同的应用程序,并按如下方式运行:
我在我的azure门户中创建了一个SQL数据库,并获得了它的ADO.NET连接字符串,如下所示:https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-dotnet-simple/
我可以对MySQL-in-app数据库进行类似的操作吗?如果是这样,如何获取要在发布步骤中设置的连接字符串?我找到了一个脚本here的解释,但是我不知道我应该在哪里运行它来获取连接字符串!
发布于 2016-11-14 19:21:13
“Get the database connection string”一节用代码解释了如何在PHP中通过MYSQLCONNSTR_localdb环境变量获取数据库连接字符串,如果你想在C#中的应用程序(预览)中获取本地MySQL数据库中使用的MySQL连接字符串,可以参考以下代码片段。
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb").ToString());
}
输出
Database=localdb;Data Source=127.0.0.1:49497;User Id=azure;Password=6#vWHD_$
此外,据我所知,应用(预览)中的MySQL与我们的应用运行本地MySQL实例,并共享应用服务计划中的资源,我们使用应用(预览)中的MySQL进行开发和测试。如果你想要将应用程序迁移到生产环境以使用非本地MySQL实例,你可以create a MySQL database in the Azure portal (提供商是ClearDB)并从你的Azure应用程序服务连接到它。
发布于 2018-12-04 08:00:58
我写了一个小帮手来让这变得更简单:
https://github.com/kedzior-io/kedzior.io.ConnectionStringConverter
在Startup.cs中
string connectionString = Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql(AzureMySQL.ToMySQLStandard(connectionString))
);
你也可以在你的机器上设置环境变量:
Name: MYSQLCONNSTR_localdb
Value: Database=dotnetpwa;Data Source=127.0.0.1:3307;User Id=kedzior;Password=kedzior
通过这种方式,您可以在本地运行您的应用程序并将其发布到Azure,而无需知道MySQL In-App的连接字符串。
发布于 2022-01-20 06:00:23
在我的例子中,我让它改变连接的字符串格式。
ConStr = System.Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
ConStr = ConStr.Replace("Database", "database");
ConStr = ConStr.Replace("Data Source", "server");
ConStr = ConStr.Replace("User Id", "user");
ConStr = ConStr.Replace("Password", "password");
ConStr = ConStr.Replace("127.0.0.1", "localhost");
// This line split "server=localhost:[port]" in "server=localhost;port=[port]
ConStr = ConStr.Replace(":", ";port=");
似乎只有最后一行为我解决了问题。
https://stackoverflow.com/questions/40549509
复制相似问题