Come rendere SQL Server in esecuzione in Virtual PC accessibile al sistema operativo host?

StackOverflow https://stackoverflow.com/questions/310407

  •  10-07-2019
  •  | 
  •  

Domanda

Sto eseguendo SQL Server 2008 Express su Windows XP su un'istanza VirtualPC all'interno di un host Windows XP. Voglio essere in grado di connettermi ai database sull'istanza guest usando SSMS sull'host. Quando vado a connettermi da SSMS sull'host e cerco server, vedo l'istanza di SQL Server sul guest. Tuttavia, quando provo a connettermi, usando un login di autenticazione SQL, ottengo il seguente errore di connessione:

Si è verificato un errore relativo alla rete o specifico dell'istanza durante la creazione di una connessione a SQL Server. Il server non è stato trovato o non era accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato per consentire connessioni remote. (provider: SQL Network Interfaces, errore: 28 - Il server non supporta il protocollo richiesto) (Microsoft SQL Server, Errore: -1)

Ho:
* provato a connettersi sia con Name Pipes che con TCP / IP
* ha assicurato che il servizio SQL Browser è attivo
* ha assicurato che il firewall sull'ospite è aperto
* il server è configurato per consentire connessioni remote (in base alle proprietà del motore di database all'interno di SSMS sul guest)

Cosa mi sto perdendo?

EDIT: l'ho capito. La mia risoluzione è inferiore.

È stato utile?

Soluzione

RISPOSTA SELEZIONATA

Grazie per le idee. Dopo aver giocherellato molto, ho fatto funzionare le cose. Si è scoperto che non ero entrato in Gestione configurazione SQL Server e abilitato TCP / IP e Named Pipe come protocolli di rete. Pertanto, anche se SSMS ha affermato che le connessioni remote sono state abilitate, non esiste un protocollo che le consenta oltre alla memoria condivisa. Dopo averlo fatto, ho riavviato il servizio SQL Server, ma le cose non sembravano ancora funzionare correttamente. Eppure, una volta riavviati sia l'ospite che l'host, tutto funzionava come previsto.

Altri suggerimenti

Come sono le tue impostazioni IP? Stai condividendo lo stesso indirizzo IP tra le due macchine? In tal caso, forse quando i tuoi client tentano di connettersi a 10.1.1.10, sta colpendo l'IP della macchina che ospita l'istanza VPC e quella macchina non esegue l'istanza di SQL Server. Se possibile, fai in modo che VPC ottenga il proprio IP e provalo.

Per lo più ricontrolla ciò che hai già detto,
disattiva il firewall guest per assicurarti che non sia così.
Assicurarsi che la rete della macchina virtuale sia impostata su bridge e non su NAT.
Prova a connetterti all'indirizzo IP dell'ospite anziché al suo nome.
Assicurarsi che le connessioni remote siano consentite dal server SQL e che sia il client che il server utilizzino tcp / ip (o se si preferisce named pipe).
Non so se abilitare le connessioni remote richiede un riavvio del server SQL.
Prova a utilizzare l'autenticazione SQL per eliminare un problema di autenticazione. Stai eseguendo un dominio?

Per aggiungere alcuni passaggi che non sono stati esplicitamente indicati sopra, ciò che ha funzionato nella mia esperienza è stato quello di configurare la rete del Virtual PC sulla mia scheda di rete fisica.

Quindi disabilitato Windows Firewall per il profilo pubblico.

Speriamo davvero di poterlo bloccare alla porta 1433.

Inoltre, sul SO guest, se SQL Server è installato solo con Windows Auth, in seguito si aggiunge SQL auth, si noti che per impostazione predefinita 'sa' è disabilitato per l'accesso al login. O 'abilita' Accedi per 'sa' o (idea migliore) crea gli accessi con le autorizzazioni appropriate, se necessario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top