2016-06-19 33 views
5

sviluppatore!Come risolvere il timeout della connessione sqlsrv PDO in Laravel?

Utilizzo il framework di Laravel e devo connettermi al database di MS SQL 2014 Express. Ho fatto tutte le configurazioni corrette in .env (e ho anche provato provato a mettere i parametri di connessione immediatamente alla configurazione database.php), ma alla prima richiesta sto ottenendo sempre timeouted con l'errore:

PDOException in Connector.php line 55: 
SQLSTATE[08001]: [Microsoft][ODBC Driver 11 for SQL Server]TCP Provider: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. 

Dopo il timeout ottengo sempre questo php fatale:

FatalErrorException in Connector.php line 55 
Invalid handle returned. 

come strumenti dev sto usando XAMPP, e quando sto riavvio del server apache, a volte riesco a stabilire la connessione con successo, ma solo in 1 su 20-30 tentativi.

Laravel utilizza il driver PDO, quindi ho provato a utilizzare sqlsrv_connect() - e ha funzionato! Nessun errore, tutto va bene.

Qualcuno può aiutarmi a configurare PDO per funzionare? Laravel utilizza solo il driver PDO, quindi non posso semplicemente passare a sqlsrv_connect.

risposta

-1

Aveva lo stesso errore, risulta che la mia password era sbagliata. Conferma di avere i giusti valori.

DB_HOST={youservername}.database.windows.net 
DB_DATABASE={dbname} 
DB_USERNAME={username} 
DB_PASSWORD={yourpassword} 
DB_PORT=1433 

Se non risolve non reimpostare la password e riprovare

0

Ho avuto lo stesso errore.

Dopo aver rimosso le host // DB_HOST voci dalla .env -File e verso il config/database.php ha funzionato per me.

1

Ho avuto questo problema in esecuzione sul mio computer locale. Ho riavviato il server laravel e ho assicurato che il ms sql localdb era in esecuzione e il problema si è risolto da solo.

0

Quello che ho fatto per il collegamento sono

  1. installata la versione corretta di DLL SQLSRV.
  2. Aggiornamento pacchetto dottrina dbal in Laravel.

La mia configurazione del database è inferiore

'sqlsrv3' => [ 
      'driver' => 'sqlsrv', 
      'host' => '<host-name>', 
      'database' => '<database-name>', 
      'username' => '<your-username>', 
      'password' => '<your-password>', 
    ] 
Problemi correlati