mysql - 从带有代理的 CORE 连接到 Google Cloud SQL 实例 : A network-related or instance-specific error occurred. 我可以通过 mysql cmd 连接

标签 mysql asp.net-core .net-core google-cloud-sql

我首先通过运行以下命令启动 goole sql 代理:

./cloud_sql_proxy -instances=dauntless-gate-xxxxxx:us-central1:redacted-dev=tcp:3306

我通过运行以下命令成功连接到它:

mysql --host=127.0.0.1 --user=sa --password=<redacted>

mysql --host=127.0.0.1 --user=sa --password=<redacted>

我尝试使用 ASP.net Core 2 进行连接,但失败:

启动.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<UserContext>(opt => 
        opt.UseSqlServer("Server=127.0.0.1:3306; User Id=sa;Password=<redacted>;"));
...
}

错误:

SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:TCP 提供程序,错误:35 - 捕获内部异常)

我还尝试了以下方法并得到了略有不同的错误:

启动.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<UserContext>(opt => 
        opt.UseSqlServer("Server=127.0.0.1; User Id=sa;Password=<redacted>;"));
...
}

处理请求时发生未处理的异常。 SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:TCP 提供程序,错误:40 - 无法打开与 SQL Server 的连接)

处理请求时发生未处理的异常。 ExtendedSocketException:没有这样的设备或地址 System.Net.Dns.InternalGetHostByName(字符串主机名)

最佳答案

“SQL Server”是 Microsoft 的 SQL 服务器产品的名称,它与在您的实例上运行的 MySQL 不同。您将需要使用MySQL Connector/NET连接。查看this page有关 Entity Framework 的更具体指南。

关于mysql - 从带有代理的 CORE 连接到 Google Cloud SQL 实例 : A network-related or instance-specific error occurred. 我可以通过 mysql cmd 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52338974/

相关文章:

mysql - 选择链接到第三个表中的数据的行

mysql - 在行中执行更新规则

c# - 在 ASP.NET Core 中发布复杂类型

linux - Linux 上的 .Net Core 控制台应用程序不会作为服务运行

javascript - 如何更改绑定(bind)到 Razor 页面上模型的特定文本的字体颜色?

php - 我无法让我的更新查询工作(php/mysqli)

php - 如何生成周表并按天和小时拆分

asp.net - 斯瓦格停止工作

c# - 签署 ASP.NET 5 类库程序集

asp.net-core - .Net Core 运行时环境 (KRE) bin 文件夹中的程序集的用途是什么?