it-swarm.com.de

verbindungszeichenfolge für sqlserver im Docker-Container

Ich verwende Visual Studio 2017 für Mac mit Dotnet Core und EF Core. Nachdem ich das mssql-Image im Docker-Container eingerichtet hatte, versuchte ich, die Verbindungszeichenfolge hinzuzufügen, aber es wurde ein Verbindungsfehler ausgelöst. Ich habe es mit verschiedenen Optionen wie IP-Adresse, Containernamen, Hostnamen usw. als Servernamen versucht, aber keine davon hat funktioniert. 

 "Default": "Server=172.17.0.2; Database=ERPDb; User=sa; Password =******;"

mit dem Containernamen 

 "Default": "Server=ecstatic_hermann; Database=ERPDb; User=sa; Password=******;"

mit hostname:

 "Default": "Server=f45840a59623; Database=ERPDb; User=sa; Password=******;"

Beim Herstellen der Verbindung mit localhost in Terminal wird die Verbindung erfolgreich hergestellt 

$ mssql -s localhost -p Technocrat123
Connecting to localhost...done

sql-cli version 0.6.2
Enter ".help" for usage hints.

Beim Ausführen der Anwendung schlägt die Verbindung jedoch fehl.

Schätzen Sie jede Hilfe. Danke im Voraus.

Wenn localhost verwendet wird, dann ist der Fehler 

Login failed for user ''. Reason: An attempt to login using SQL authentication failed. Server is configured for Integrated authentication only.
11
user2695433

Ich habe gerade einen Blogbeitrag dazu geschrieben. Schauen Sie sich die Datei richminchuk.io an. Andernfalls:

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

dann,

private static string _connStr = @"
   Server=127.0.0.1,1401;
   Database=Master;
   User Id=SA;
   Password=YourSTRONG!Passw0rd
";
11
rjminchuk

Höchstwahrscheinlich lautet Ihr Servername localhost und Port 1401 (dies ist der Standard für die Einrichtung des Docker-Containers). Daher müssen Sie die folgende Verbindungszeichenfolge verwenden:

"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;"
7

Ich hatte dieses Problem heute und habe es mit einem separaten Netzwerk gelöst (anstelle des Standardnetzwerks "Bridge").

  1. docker network create test_network

  2. 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

  3. docker container run -p 5000:80 --rm -e ASPNETCORE_ENVIRONMENT=Development --name aspnetcore --network=test_network aspnetcore-image

Auch ich habe eine solche Verbindungszeichenfolge:

Server=mssql;Database=master;User=sa;Password=**********;

Bei früheren Antworten zu Verbindungszeichenfolge mit IP-Adresse ist dies kein guter Ansatz, da diese Adresse dynamisch geändert werden kann. Daher sollten Containernamen als Hostnamen verwendet werden.

0