use*_*433 25 macos connection-string docker asp.net-core-1.1
我正在使用Visual Studio 2017 for mac与dotnet Core和EF Core.在Docker容器中设置mssql映像后,我试图添加连接字符串但抛出连接错误.我尝试使用不同的选项,如IP地址,容器名称,主机名等作为服务器名称,但没有一个工作.
"Default": "Server=172.17.0.2; Database=ERPDb; User=sa; Password =******;"
Run Code Online (Sandbox Code Playgroud)
用容器名称
"Default": "Server=ecstatic_hermann; Database=ERPDb; User=sa; Password=******;"
Run Code Online (Sandbox Code Playgroud)
主机名:
"Default": "Server=f45840a59623; Database=ERPDb; User=sa; Password=******;"
Run Code Online (Sandbox Code Playgroud)
通过在终端中使用localhost连接成功连接
$ mssql -s localhost -p Technocrat123
Connecting to localhost...done
sql-cli version 0.6.2
Enter ".help" for usage hints.
Run Code Online (Sandbox Code Playgroud)
但是在运行应用程序时,连接失败.
感谢任何帮助.提前致谢.
如果使用localhost则错误是
Login failed for user ''. Reason: An attempt to login using SQL authentication failed. Server is configured for Integrated authentication only.
Run Code Online (Sandbox Code Playgroud)
rjm*_*huk 21
我刚刚写了一篇博文.看看richminchuk.io.除此以外:
sudo docker pull microsoft/mssql-server-linux:2017-latest
docker run \
-e 'ACCEPT_EULA=Y' \
-e 'MSSQL_SA_PASSWORD=YourSTRONG!Passw0rd' \
-p 1401:1433 \
-n sql1 \
-d microsoft/mssql-server-linux:2017-latest
Run Code Online (Sandbox Code Playgroud)
然后,
private static string _connStr = @"
Server=127.0.0.1,1401;
Database=Master;
User Id=SA;
Password=YourSTRONG!Passw0rd
";
Run Code Online (Sandbox Code Playgroud)
小智 12
很可能您的服务器名称是localhost和端口1401(这是Docker容器设置的默认值).因此,您需要使用以下连接字符串:
"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;"
Run Code Online (Sandbox Code Playgroud)
小智 8
除了使用在团队环境中会出现问题的 IP 地址之外,您还可以使用host.docker.internal来解析您的主机 IP。
Data Source=host.docker.internal,1433;Initial Catalog=MyDB;User ID=MyUser;Password=MyPassword
Run Code Online (Sandbox Code Playgroud)
我今天遇到了这个问题,我使用单独的网络(而不是使用默认的“桥接”网络)解决了这个问题。
docker network create test_network
docker container run -p 1433:1433 -d --name mssql -v mssql_data:/var/opt/mssql -e SA_PASSWORD=********** -e ACCEPT_EULA=Y --network=test_network microsoft/mssql-server-linux
docker container run -p 5000:80 --rm -e ASPNETCORE_ENVIRONMENT=Development --name aspnetcore --network=test_network aspnetcore-image
我也有这样的连接字符串:
Server=mssql;Database=master;User=sa;Password=**********;
Run Code Online (Sandbox Code Playgroud)
关于以前关于带有 IP 地址的连接字符串的答案,这不是一个好方法,因为该地址可以动态更改,最好使用容器名称作为主机名。
| 归档时间: |
|
| 查看次数: |
12820 次 |
| 最近记录: |