使用Laravel连接到Sql Server


Connecting to Sql Server with Laravel

我刚刚通过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

转到>>配置工具

  1. SQL Server 2014配置管理器
  2. SQL Server网络配置
  3. "your_sqlserver_service"的协议
  4. 右键单击TCP/IP,选择"属性"
  5. 选择"IP地址"选项卡
  6. 向下滚动到IPALL
  7. 在TCP端口,键入1433
  8. 确定并重新启动SQL Server服务

让我们试试看。如果我错了,请随时纠正我。

在虚拟主机上使用Xamp时,我也遇到了这个错误。我将端口从80更改为8000,但忘记更改vhosts文件以反映端口更改。我只是想为其他可怜的灵魂加上这个。