我首先通过运行以下命令启动 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/