Die Fehlermeldung „Named Pipes Provider: Could not open a connection to SQL Server [1326]“ erscheint, wenn versucht wird mit PHP 5.5.12 auf einen MSSQL Server 2012 zu zugreifen.
Folgendes wurde getestet:
- TCP/IP, Named Pipes sind aktiviert
- Firewall ist testweise ganz ausgeschalten
- Verbindung mit SSMS funktioniert auf den SQLServer vom selben PC
Trotzdem funktioniert keine Verbindung auf den SQLServer. Wenn man einen falschen Instanznamen, oder eine falsche IP-Adresse angibt, dann kommt eine andere Fehlermeldung, daran kann es auch nicht liegen.
Die Lösung des Problems liegt am nicht vergebenen Port und zwar unter IPAll > TCP-Port!
Wenn unter IPAll > TCP-Port der Port 1433 eingetragen wird, und nach einem Neustart des SQL Server-Dienst, funktioniert der Zugriff von PHP aus!
Nachtrag: Mehrere SQL-Server Instanzen am selben Server
Bei mehreren Instanzen, gibt es Probleme, wenn man den TCP-Port fix vergibt. Mehrere Instanzen gleichzeitig können nicht mehr gestartet werden. Fehler ist, dass der TCP-Port schon belegt ist. Um das Problem zu umgehen trägt man bei „Dynamische TCP-Ports“ eine 0 ein. Dann funktioniert der Zugriff über PHP auf den SQL-Server, und es können mehrere Instanzen betrieben werden.
Alle Angaben und Informationen ohne Gewähr!