我刚刚通过Composer安装了Laravel,并将Config/database.php更改为
'default' => 'sqlsrv',
并更改了连接的设置
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'Host IP'),
'database' => env('DB_DATABASE', 'WebServices'),
'username' => env('DB_USERNAME', 'User'),
'password' => env('DB_PASSWORD', 'Password'),
'prefix' => '',
],
但是我在尝试连接时遇到了这个错误。
1/1
PDOException in Connector.php line 47:
SQLSTATE[08001]: [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [2].
in Connector.php line 47
at PDO->__construct('sqlsrv:Server=localhost;Database=homestead', 'homestead', 'secret', array('0', '2', '0', false)) in Connector.php
line 47 at Connector >createConnection('sqlsrv:Server=localhost;Database=homestead', array('driver' => 'sqlsrv', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'prefix' => '', 'name' => 'sqlsrv'), array('0', '2', '0', false)) in SqlServerConnector.php
line 29 at SqlServerConnector->connect(array('driver' => 'sqlsrv', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'prefix' => '', 'name' => 'sqlsrv')) in compiled.php
line 10673 at ConnectionFactory->createSingleConnection(array('driver' => 'sqlsrv', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'prefix' => '', 'name' => 'sqlsrv')) in compiled.php
line 10669 at ConnectionFactory->make(array('driver' => 'sqlsrv', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'prefix' => ''), 'sqlsrv') in compiled.php line 10587
我不知道它为什么要这样做。任何帮助都是非常有用的,它目前托管在WAMP中的www/Laravel/
如果是isset,你能检查app/config/local/database.php文件吗。也许你的配置信息是从那里得到的。
我的环境:
- Windows Server 2008
- SQL Server Express 2014
- 带有PHP 5.6.23的Xampp win32
- Laravel 5.2
原因:由于TCP/IP协议问题,PDO连接失败。SQL Server 2014 Configuration Manager
转到>>配置工具
- SQL Server 2014配置管理器
- SQL Server网络配置
- "your_sqlserver_service"的协议
- 右键单击TCP/IP,选择"属性"
- 选择"IP地址"选项卡
- 向下滚动到IPALL
- 在TCP端口,键入1433
- 确定并重新启动SQL Server服务
让我们试试看。如果我错了,请随时纠正我。
在虚拟主机上使用Xamp时,我也遇到了这个错误。我将端口从80更改为8000,但忘记更改vhosts文件以反映端口更改。我只是想为其他可怜的灵魂加上这个。