2008-11-21 9 views
8

Ich verwende SQL Server 2008 Express unter Windows XP auf einer VirtualPC-Instanz in einem Windows XP-Host. Ich möchte mit SSMS auf dem Host eine Verbindung zu Datenbanken auf der Gast-Instanz herstellen können. Wenn ich mich von SSMS auf dem Host aus verbinde und nach Servern suche, sehe ich die Instanz von SQL Server auf dem Gast. Wenn ich versuche, mithilfe einer SQL-Authentifizierung anmelden, bekomme ich die folgenden Verbindungsfehler:Wie kann SQL Server in Virtual PC ausgeführt werden, um auf das Host-Betriebssystem zugreifen zu können?

Ein Netzwerk-oder instanzspezifische Fehler trat beim Herstellen einer Verbindung zu SQL Server. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden. (Anbieter: SQL Network Interfaces, Fehler: 28 - Server nicht angeforderten Protokoll nicht unterstützt) (Microsoft SQL Server, Fehler: -1)

ich habe:
* versucht verbinden beide mit Named Pipes und TCP/IP
* sichergestellt, dass der SQL-Browser-Dienst ist bis
* dafür gesorgt, dass der Firewall auf dem Gast offen ist
* der Server Remote-Verbindungen zu ermöglichen, ist so konfiguriert, (entsprechend die Datenbank-Engine Eigenschaften innerhalb SSMS auf dem Gast)

Was fehlt mir?

EDIT: Ich habe das herausgefunden. Meine Entschließung ist unten.

Antwort

5

SELBST akzeptierte Antwort

Danke für die Ideen. Nachdem ich viel herumgespielt hatte, funktionierte es. Es stellte sich heraus, dass ich nicht in den Sql Server Configuration Manager gegangen war und TCP/IP und Named Pipes als Netzwerkprotokolle aktiviert hatte. Also, obwohl SSMS, dass Remote-Verbindungen aktiviert waren, gab es kein Protokoll, das ihnen anderen als Shared Memory erlaubte. Nachdem ich das getan habe, habe ich den SQL Server-Dienst neu gestartet, aber die Dinge schienen immer noch nicht richtig zu funktionieren. Nachdem ich sowohl den Gast als auch den Gastgeber neu gestartet hatte, funktionierte alles wie erwartet.

2

Wie sind Ihre IP-Einstellungen? Teilen Sie dieselbe IP-Adresse zwischen den beiden Computern? Wenn dies der Fall ist, treffen die Clients, wenn sie versuchen, eine Verbindung zu 10.1.1.10 herzustellen, die IP des Computers, der die VPC-Instanz hostet, und dieser Computer führt die SQL Server-Instanz nicht aus. Wenn möglich, lassen Sie VPC eine eigene IP bekommen und versuchen Sie es.

1

Meistens doppelt überprüfen, was Sie bereits gesagt haben,
Schalten Sie die Gast-Firewall aus, um sicherzustellen, dass es nicht das ist.
Stellen Sie sicher, dass Ihr Virtual Machine-Netzwerk auf Bridged und nicht auf NAT eingestellt ist.
Versuchen Sie, die Verbindung mit der IP-Adresse des Gasts statt dessen Name herzustellen.
Stellen Sie sicher, dass die Remoteverbindungen vom SQL Server zugelassen sind und dass sowohl der Client als auch der Server tcp/ip verwenden (oder Named Pipes, wenn Sie dies bevorzugen).
Ich weiß nicht, ob die Aktivierung von Remote-Verbindungen einen Neustart des SQL-Servers erfordert.
Versuchen Sie, die SQL-Authentifizierung zu verwenden, um ein Authentifizierungsproblem zu beseitigen. Laufen Sie auf einer Domain?

0

Um einige Schritte hinzuzufügen, die nicht explizit oben genannt sind, funktionierte meiner Erfahrung nach, das Netzwerk des virtuellen PCs zu meinem physischen Netzwerkadapter einzurichten.

Dann deaktiviert Windows-Firewall für das öffentliche Profil.

Hoffentlich konnte, dass tatsächlich sperren zu Port 1433

Auch auf dem Gast-Betriebssystem, wenn SQL Server mit nur Windows-Auth installiert ist, später von SQL-Auth hinzufügen möchten, beachten Sie, dass standardmäßig ‚sa‘ deaktiviert ist für den Login-Zugang. Entweder aktivieren Sie Login für "sa" oder (bessere Idee) erstellen Sie Logins mit den entsprechenden Berechtigungen wie benötigt.