SQL Server è avviato ma non è in ascolto su nessuna porta


9

Ho appena installato SQL Server 2012. Nessun database ancora creato. E posso aprire Management Studio con sa / password. Binn \ sqlservr.exe viene avviato come servizio e posso vederlo avviato nell'elenco dei servizi. Tuttavia, non ha ascoltato la porta 1433, o addirittura, non ha ascoltato alcuna porta per impostazione predefinita, come ho controllato come di seguito:

tasklist|find /I "sql"

Ho ottenuto:

sqlservr.exe                  5668 Services                   0     40,112 K

in cui 5668 penso sia il PID. E quindi per ottenere PID = "5668" sta ascoltando quale porta:

netstat -ano | find /I "5668"

ma non ho ottenuto nulla se non vuoto. D'altra parte, dopo aver cercato i post in questo sito, ho ricontrollato la configurazione del mio SQL Server: start-> Tutti i programmi -> Microsoft SQL Server 2012 -> Strumenti di configurazione -> Gestione configurazione SQL Server-> SQL Server SQL Native Client 11.0 Configurazione -> Protocolli client -> TCP / IP -> Porta predefinita 1433. Ci sono 3 servizi, SQL Server (NomeInstanza), Agente SQL Server (NomeInstanza) e Browser SQL Server. Gli ultimi due sono fermati.

Gestione configurazione SQL Server-> Configurazione rete SQL Server-> Protocolli per MyInstanceName -> TCP / IP è disabilitato per impostazione predefinita, dopo averlo abilitato, riavviare il servizio e ripetere netstat -ano | find / I "newPIDNum" comando Ho trovato il

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

Perché 52395 invece di 1433? E non sono riuscito a creare il DSN utilizzando l'amministratore dell'origine dati ODBC di Windows che mi restituisce un errore: server SQL specificato non trovato. Qualche aiuto per me? Grazie.


Configurazione di rete predefinita di SQL Server (per il 2008, non riesco a trovare la versione 2012 ma non credo che sia diversa)
Damien_The_Unbeliever

Grazie. Un ottimo aiuto per me. Altri commenti sulla mia cassa DSN?

Sembra che tu stia utilizzando un'istanza denominata (solo l'istanza predefinita è in ascolto sul 1433, per quanto ne sappia). Includete il nome dell'istanza quando provate a creare il DSN?
Damien_The_Unbeliever il

Sì, durante l'installazione, ho inserito un nome per Instance. Durante la creazione di DSN, mi è stato chiesto di inserire un nome DSN (ho inserito un nome arbitrario), il server SQL a cui connettermi (Questa è una casella di selezione a discesa e ho provato due scelte qui entrambe falliscono, una è (locale), un'altra è <.MyInstanceName>),

Non ho ancora visto nessun altro posto dove includere MyInstanceName. E il pulsante successivo mi dirige un'autenticazione e una <Configurazione client> che posso impostare <Alias ​​server>, <Nome server> e controllare <Determinazione dinamica porta>.

Risposte:


14

Ciò che ha reso il mio server SQL in ascolto delle TCPconnessioni sulla porta 1433 è stato il seguente ...

  1. Strumenti di configurazione / Gestione configurazione SQL Server
  2. fare clic sul nome dell'istanza in SQL Server Network Configuration
  3. abilitare la TCPcomunicazione
  4. Fare clic con il tasto destro del mouse sulla TCPvoce di comunicazione, selezionareProperties
  5. Fai clic sulla scheda Indirizzi IP
  6. Abilita tutti gli indirizzi IP non VMnet e inserisci 1433 nella Portvoce " IPAll ".
  7. Riavviare SQL Server nella scheda Servizi SQL Server
  8. Verifica la tua configurazione con netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING
    

1
Questa è solo una soluzione che funziona per me. Eventuali altri manuali non dicono nemmeno sulla porta IPAII. Grazie amico, hai reso la mia giornata
QkiZ il

13

Perché 52395 invece di 1433

Le istanze denominate sono in ascolto su porte dinamiche. È il lavoro del servizio browser SQL Server per informare i client della porta effettiva. Il browser SQL ascolta UDP 1434 e risponde alle domande del modulo 'qual è la porta di ascolto dell'istanza "pippo"?'. Il servizio Sql Server Browser è richiesto per i protocolli TCP e named pipe. I client utilizzano il browser SQL Server in modo trasparente, senza necessità di una configurazione speciale. Specificando semplicemente un nome di istanza nella stringa di connessione (o il DSN ODBC), la libreria client sa che deve contattare prima il servizio SQL Server Browser.

Esistono 3 servizi, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) e SQL Server Browser. Gli ultimi due sono fermati

Ovviamente per SQL Server Browser per fare il suo lavoro, deve essere avviato. Avviarlo e cambiare il tipo di avvio in automatico.

Come nota a margine, una configurazione alternativa spesso utilizzata è quella di utilizzare porte statiche per l'istanza denominata e specificare la porta nella stringa di connessione ( tcp:<hostname>:<port>). Ha il vantaggio di eliminare SQL Server Browser dall'equazione, ma richiede un'attenta manutenzione dei client. Cambiare la porta di ascolto richiede cambiamenti orchestrati su tutti i client, tutte le macchine, tutte le posizioni, di solito un grande dolore. Consiglio invece di prendere la dipendenza dal browser SQL Server.


1

Firewall - 3 di questi

Persone che non hanno familiarità con le versioni più recenti di Windows (non mi sento a mio agio con nessun altro dopo XP e cercavano di installare SQL Server su Windows 10):

  • Il firewall deve essere disattivato in 3 punti separati (ovvero per 3 diversi profili).

Se lo fai solo per il primo che vedi (Profilo del dominio), rimarrai comunque meravigliato del motivo per cui puoi connetterti alla porta 80 (IIS) ma non 1433 (SQL Server).

inserisci qui la descrizione dell'immagine


1

Non posso ancora commentare (reputazione bassa poiché non molto attiva): Disabilitare Windows Firewall, come menzionato sopra, è la risposta peggiore possibile. Corretto sarebbe: Creare regole firewall in "inbound" per consentire la comunicazione Port 1433 su quegli IP locali (o tutti) necessari. E consiglio anche di impostare quali IP remoti possono connettersi a quel SQL Server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.