Impossibile connettersi a localhost su SQL Server Express 2012/2016


97

Ho appena scaricato l'ultima versione di SQL Express 2012 ma non riesco a connettermi a localhost. Ho provato localhost \ SQLExpress e l'autenticazione di Windows ma mi dà un messaggio di errore che dice che non è possibile connettersi. Mi manca qualcosa qui? Ho già utilizzato SQL Server 2008 e non ho mai avuto problemi di connessione a localhost. Sembra che non riesca nemmeno a trovarlo. Anche nei servizi vedo solo un writer VSS di SQL Server. È così che dovrebbe essere? Oppure mi sfugge qualcosa? Grazie


1
Sembra che l'installazione non sia andata bene. Hai provato a ripararlo / reinstallarlo?
Vikdor

1
Sei sicuro di aver trovato il programma di installazione per il server, invece di, ad esempio, un programma di installazione di Management Studio?
Damien_The_Unbeliever

Risposte:


181

Secondo Aaron Bertand :

  1. È necessario verificare che il servizio SQL Server sia in esecuzione. Puoi farlo andando su Start > Control Panel > Administrative Tools > Servicese controllando che il servizio SQL Server ( SQLEXPRESS) sia in esecuzione. In caso contrario, avvialo.

  2. Mentre sei nell'applet dei servizi, assicurati anche che il servizio SQL Browser sia avviato. In caso contrario, avvialo .

  3. È necessario assicurarsi che SQL Server sia autorizzato a utilizzare TCP / IP o named pipe. È possibile attivarli aprendo Gestione configurazione SQL Server in Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(o SQL Server Configuration Manager) e assicurarsi che TCP / IP e Named Pipe siano abilitati . Se non trovi Gestione configurazione SQL Server nel menu Start, puoi avviare manualmente lo snap-in MMC. Controllare SQL Server Configuration Manager per il percorso dello snap-in in base alla versione.

    Gestione configurazione SQL Server

  4. Verificare che la modalità di autenticazione della connessione di SQL Server corrisponda alla stringa di connessione:

    • Se ti connetti utilizzando un nome utente e una password, devi configurare SQL Server per accettare la "Modalità di autenticazione di SQL Server":

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
    • Se ti connetti utilizzando "Integrated Security = true" (modalità Windows) e questo errore viene visualizzato solo durante il debug nelle applicazioni Web, devi aggiungere ApplicationPoolIdentity come account di accesso di SQL Server :
  5. altrimenti, esegui Start -> Run -> Services.mscSe sì, è in esecuzione?

Se non è in esecuzione, allora

Sembra che tu non abbia installato tutto. Avvia il file di installazione e scegli l'opzione "Nuova installazione o aggiungi funzionalità a un'installazione esistente". Da lì dovresti essere in grado di assicurarti che il servizio del motore di database venga installato.


2
@dido: Start-> Run-> Services.msc
Ravindra Bagale

3
Un'altra cosa da controllare è il nome dell'istanza. A seconda di come è stato installato SQL Server, potrebbe essere necessario o meno fornire un nome istanza dopo l'host.
Arvo Bowen

"TCP / IP e Named Pipe sono abilitati" sembra essere necessario dopo la prima installazione
James A Mohler

3
È stato stupido ma per me il problema era usare "localhost" come nome del server e non "localhost \ SQLEXPRESS01" come era stato impostato nell'installazione
Guy s

1
Nel mio caso SQLBrowser era disabilitato e lo strumento di configurazione non era elencato nella cartella degli strumenti sql. Per avviare lo strumento di configurazione tramite cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Per avviare SQLBrowser automaticamente se la configurazione lo strumento fallisce /programming/21375014/i-cannot-start-sql-server-browser
steven87vt

121

Vai a Start -> Programmi -> Microsoft SQL ServerYYYY -> Strumenti di configurazione -> SQL Server YYYY Configuration Manager o esegui "SQLServerManager12.msc".

Assicurati che TCP / IP sia abilitato in Protocolli client.

Quindi vai in "Configurazione di rete SQL Server" e fai doppio clic su TCP / IP. Fare clic sulla scheda "Indirizzi IP" e scorrere fino in fondo. In "IP All" rimuovere le porte dinamiche TCP se è presente e impostare la porta TCP su 1433. Fare clic su OK, quindi tornare a "Servizi SQL Server" e riavviare l'istanza di SQL Server. Ora puoi connetterti tramite localhost, almeno potrei.

inserisci qui la descrizione dell'immagine

Si noti che questo errore può ovviamente verificarsi anche durante la connessione da altre applicazioni. Esempio di una normale Web.configstringa di connessione dell'applicazione Web C # :

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

4
Infine, questo ha funzionato per me! Avevo cambiato la porta in IP1, IP2, ... ma non in IPAll. È stato così, grazie!
George,

2
@George esattamente come te. Avevo anche disabilitato il firewall e niente ha funzionato. C'era una porta 40xxx nelle porte dinamiche TCP. L'ho rimosso e ho inserito 1433 nella porta TCP per IPAll, anche questo ha funzionato. Grazie!
Alisson

Questa è stata la chiave anche per me.
Erik Olson

1
Dopo molte ore in cui sbatto la testa contro il muro, finalmente ha funzionato. Grazie.
Top Cat

Ottima soluzione. Mi salva la giornata. Grazie mille!
Lavande

13

in SQL SERVER EXPRESS 2012 dovresti usare "(localdb) \ MSSQLLocalDB" come nome dell'origine dati, ad esempio puoi usare una stringa di connessione come questa

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;

10

Ho avuto un problema simile, forse la mia soluzione aiuterà. Ho appena installato MSSQL EX 2012 (installazione predefinita) e ho provato a connettermi con VS2012 EX. Nessuna gioia. Ho quindi esaminato i servizi, confermato che SQL Server (SQLEXPRESS) era effettivamente in esecuzione.

Tuttavia, ho visto un altro servizio interessante chiamato SQL Server Browser che è stato disabilitato. L'ho abilitato, attivato e sono stato quindi in grado di recuperare il nome del server in una nuova connessione in VS2012 EX e connettermi.

Strano che disabilitassero un servizio richiesto per la connessione di VS.


Non è necessario connettersi; L'ho disabilitato e posso connettermi bene. Rende le cose più semplici quando non si conosce il nome preciso dell'host / istanza a cui connettersi in quanto consente a tali cose di essere interrogate da altri software.
Simon Morgan

8

Per prima cosa prova la soluzione più popolare fornita da Ravindra Bagale .

Se la connessione da localhost al database non riesce ancora con un errore simile al seguente:

Impossibile connettersi al database di SQL Server. Errore: la connessione TCP / IP all'host [indirizzo IP], porta 1433 non è riuscita. Errore: "Connessione rifiutata: connessione. Verifica le proprietà della connessione. Assicurati che un'istanza di SQL Server sia in esecuzione sull'host e accetti connessioni TCP / IP sulla porta. Assicurati che le connessioni TCP alla porta non siano bloccate da un firewall . "

  1. Apri Gestione configurazione SQL Server.
  2. Espandere Configurazione di rete di SQL Server per l'istanza del server in questione.
  3. Fare doppio clic su "TCP / IP".
  4. Nella sezione "Protocollo", imposta "Abilitato" su "Sì".
  5. Nella sezione "Indirizzi IP", imposta la porta TCP in "IP All" (che è 1433 per impostazione predefinita).
  6. Nella sezione "Indirizzi IP", trova le sottosezioni con indirizzo IP 127.0.0.1 (per IPv4) e :: 1 (per IPv6) e imposta "Abilitato" e "Attivo" su "Sì" e la porta TCP su 1433.

    Proprietà TCP / IP

  7. Vai a Start > Control Panel > Administrative Tools > Servicese riavvia il servizio SQL Server ( SQLEXPRESS).


Ho provato le altre soluzioni sopra prima di arrivare qui. Questo l'ha risolto per me! Inoltre, ho scoperto che scaricare una cosa chiamata psping mi ha aiutato a testare la connessione. Esempio: psping 127.0.0.1:1433
JMI MADISON

7

Per prima cosa controlla che il servizio SQL Server sia in esecuzione o arrestato, se viene arrestato, avviarlo, per farlo..segui i passaggi seguenti.

1.Start -> Esegui -> Services.msc

inserisci qui la descrizione dell'immagine

  1. Vai alla scheda Standard nel pannello dei servizi, quindi cerca SQl Server (SQL2014)

"SQL2014" è dato da me, potrebbe essere un altro nome nel tuo caso

inserisci qui la descrizione dell'immagine

questo è tutto una volta avviato il servizio SQL, sei in grado di connettere il database locale.

spero che possa aiutare qualcuno.


4

Tutti i miei servizi funzionavano come previsto e non riuscivo ancora a connettermi.

Ho dovuto aggiornare la sezione delle proprietà TCP / IP in Gestione configurazione SQL Server per i miei protocolli SQL Server Express e impostare la porta IPALL su 1433 per connettermi al server come previsto.

inserisci qui la descrizione dell'immagine


3

Prova a passare dall'autenticazione di Windows alla modalità mista


1

È strano che io abbia un problema simile. Ho scaricato il pacchetto per SQL 2012 Express con Strumenti ma il Motore di database non è stato installato.

Ho scaricato l'altro dal sito MS e questo ha installato il motore di database. Dopo un riavvio i servizi sono stati elencati e pronti per l'uso.


1

La mia situazione

  • Nome istanza vuoto in SQL Server Management Studio> selezionare il motore di database> Pulsante destro del mouse> Proprietà (Proprietà server)> Proprietà connessione Visualizza collegamento> Prodotto> Nome istanza è vuoto

  • Data Source =. \ SQLEXPRESS non ha funzionato => usa localhost in web.config (vedi sotto)

Soluzione : in web.config

xxxxxx = nome del mio database senza .mdf yyyyyy = nome del mio database in VS2012 database explorer

È possibile forzare l'uso di TCP invece della memoria condivisa, anteponendo tcp: al nome del server nella stringa di connessione o utilizzando localhost.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx


1

Ho avuto lo stesso problema e ho scoperto che questo è accaduto dopo aver installato un aggiornamento per il mio SQL 2012. Ciò che lo ha risolto per me era entrare in programmi e funzionalità ed eseguire una riparazione su di esso.


1

Il problema per me era che non stavo specificando .\. Stavo solo specificando il nome dell'istanza:

  • non ha funzionato: SQL2016
  • lavorato: .\SQL2016

1

Dopo aver eseguito i passaggi menzionati da @ Ravindra Bagale , prova questo passaggio. Server name: localhost\{Instance name you were gave}

inserisci qui la descrizione dell'immagine


0

Prova a cambiare l'utente proprietario del servizio in Sistema locale o usa il tuo account amministratore.

In servizi, ho modificato il servizio di accesso SQL Server (MSSQLSERVER) da NT Service \ Sql ... al sistema locale. Fare clic con il pulsante destro del mouse sul servizio e accedere alla scheda Accesso e selezionare il pulsante di opzione Account di sistema locale. Potresti anche costringere un altro utente a eseguirlo se si adatta meglio.

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.