0

我已经在我的 ubuntu ( 17.04 ) 上安装了 SQL 服务器,它运行得非常好。我正在使用 Jetbrains Rider 进行 C# 开发工作,我可以通过 Jetbrains Rider 附带的数据库工具连接到我的本地 SQL Server 实例。

在此处输入图像描述

但是当我试图从我的应用程序连接到同一个数据库时,它会引发以下错误。

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP 提供者,错误:25 - 连接字符串无效)---> System.Net.Sockets.SocketException (0x80004005):成功

以下是我的 appsettings.json 文件中的连接字符串

"ConnectionStrings": {
"DefaultConnection": "Data Source=localhost\\sqlexpress:1433;Database=MyDb;User Id=SA;Password=MyPasswd;"

},

我也尝试在连接字符串中使用端口号和“初始目录”而不是“数据库”进行连接。

如何正确设置连接字符串?

4

2 回答 2

0

我遇到了同样的问题,发现在 docker 中,linux 版本的 sql server 暴露在端口 1401 上!!不是标准的 1433,这似乎是我的问题,尽管您似乎在骑手方面连接正常.. 奇怪

于 2018-02-04T20:53:57.657 回答
0
Data Source=localhost\\sqlexpress:1433;Database=MyDb;User Id=SA;Password=MyPasswd;

尝试使用逗号而不是分号

Data Source=localhost\\sqlexpress,1433;Database=MyDb;User Id=SA;Password=MyPasswd;

让我为未来的读者做一个完整的例子:

如果我运行以下命令:(在 ubuntu 上)

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password1#" \
   -p 1455:1433 --name sql1 \
   -d mcr.microsoft.com/mssql/server:2017-latest

我的连接字符串是:

{
  "ConnectionStrings": {
    "MyConnectionString": "Data Source=localhost,1455;Database=master;User Id=sa;Password=Password1#;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "AllowedHosts": "*"
}

显然,您可能不想实际使用“主”数据库,但为了及早对其进行测试,它是可以接受的。

于 2019-08-21T23:40:40.920 回答