Probleme beim Herstellen einer Verbindung mit SQL Server mit sqlcmd von Docker aus

8

Arbeiten mit debian linux in einem docker container. Ich habe sqlcmd ordnungsgemäß funktioniert und die erforderlichen Treiber installiert und lokalisierbar. Ich weiß, dass der Server existiert:

%Vor%

Aber für mein Leben kann ich nicht herausfinden, wie ich mich mit sqlcmd verbinde, und ich bin mir nicht sicher, welche Tricks mir zur Verfügung stehen, um zu helfen. Dieser Befehl führt zu einem Fehler:

%Vor%

Ich habe bestätigt, dass der Benutzername und das Passwort korrekt sind. Also, was könnte hier los sein? Irgendwelche Ideen? Ich habe viele Wiederholungen der sqlcmd versucht, um es richtig zu machen, aber bis jetzt funktioniert nichts.

BEARBEITEN: Telnet

%Vor%

BEARBEITEN: tcptraceroute

%Vor%

BEARBEITEN: ip route get

%Vor%

EDIT: Dockerfile

%Vor%

Und schließlich die install_sql.sh von der Dockerfile aufgerufen:

%Vor%     
Stu 25.01.2018, 20:52
quelle

2 Antworten

4

Gemessen an der nmap -Ausgabe, die Sie geteilt haben, glaube ich, dass dies ein Firewall-Problem ist oder der Server SQL Server selbst blockiert den Zugriff. Laut man nmap :

  

Der Status ist entweder offen, gefiltert, geschlossen oder ungefiltert [...] Gefiltert. bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert, so dass Nmap nicht erkennen kann, ob es offen oder geschlossen ist.

Das Lesen der sqlcmd -Ausgabe ( A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible ) zeigt ebenfalls in diese Richtung gemäß diesem Microsoft posten , die auch einige mögliche Lösungen bietet.

Wenn der SQL Server von Ihnen selbst verwaltet wird, können Sie seine Protokolle überprüfen, um festzustellen, warum er Ihre Verbindung ablehnt, und außerdem eine Firewallregel hinzufügen, um den Zugriff von Ihrem Container aus zuzulassen. Wenn dies nicht der Fall ist, müssen Sie möglicherweise mit dem Administrator dieses Servers sprechen und ihn bitten, Ihre IP-Adresse in der Firewall-Liste / akzeptierte Verbindungsliste in der Konfigurationsdatei des Servers hinzuzufügen.

Wenn die Firewall nicht Ihr Problem ist, versuchen Sie bitte, die folgenden Einstellungen auf Ihren SQL Server anzuwenden und die Verbindung erneut zu testen.

  

Legen Sie im SQL Server-Konfigurationsmanager auf "Alle abhören" auf "Nein" fest & gt;   SQL Server-Netzwerkkonfiguration & gt; Protokolle für [Instanzname]. Und   unter IP-Adresse ändern Sie 127.0.0.1 zu der [ip], die für die Verbindung verwendet wird. Nicht   vergiss den SQL Server neu zu starten!

     

Tipp: Überprüfen Sie Ihre Firewall (oder deaktivieren Sie sie vorübergehend für Testzwecke).   Ermöglichen Sie auch Remoteverbindungen in SQL Server-Eigenschaften & gt; Verbindungen.   Siehe obenstehende Beiträge.

     

Leben sicherer war dieser Befehl: nc -zv <ip> 1433
  Es sollte die Verbindung zu 1433 port [tcp / ms-sql-s] erfolgreich sein!

Die ursprüngliche Quelle ist hier .

    
AnythingIsFine 01.02.2018 11:47
quelle
0

Wenn ich von Ihrer Frage auslese, gehe ich davon aus, dass Sie von Docker aus eine Verbindung zu Ihrem lokalen SQL Server herstellen möchten.

SQL Server kann mit über TCP / IP verbunden werden:

  1. Öffnen Sie den SQL Server-Konfigurations-Manager und stellen Sie sicher, dass TCP / IP aktiviert ist;

  2. Stellen Sie sicher, dass SQL Server alle IP-Adressen überwacht.

brotherperes 05.02.2018 09:28
quelle

Tags und Links