TCP 提供程序连接被拒绝 - Laravel 6 和 SQL Server (Microsoft)

我目前正在全新安装 Laravel 6 并尝试将其连接到我的 Microsoft SQL Server,并且我正在使用 Laragon 在本地提供服务。


我已经下载了 SQL Server 的 ODBC 驱动程序。


我的 database.php 文件包含:


'default' => env('DB_CONNECTION', 'sqlsrv'),


...


'sqlsrv' => [

        'driver' => 'sqlsrv',

        'url' => env('DATABASE_URL'),

        'odbc' => true, // I added this line

        'odbc_datasource_name' => '{SQL Server}', // I added this line

        'host' => env('DB_HOST', 'localhost'),

        'port' => env('DB_PORT', '1433'),

        'database' => env('DB_DATABASE', 'forge'),

        'username' => env('DB_USERNAME', 'forge'),

        'password' => env('DB_PASSWORD', ''),

        'charset' => 'utf8',

        'prefix' => '',

        'prefix_indexes' => true,

 ],

我的 .env 包含有效的登录凭据。为了测试我是否可以连接到数据库,我检查了 welcome.blade.php:


@php

    if (DB::connection()->getDatabaseName())

    {

        echo "connected successfully to database ".DB::connection()->getDatabaseName();


    }

@endphp

这在我的页面上回显为:


成功连接到数据库testDatabase


我已经进入 Tinker 看看我是否可以从我的模型中获得所有员工的集合,即 Carer.php:



namespace App;


use Illuminate\Database\Eloquent\Model;


class Carer extends Model

{

    protected $table = "dbo.carer";


    protected $primaryKey = 'CarerID';

}


    ...

$carer = App\Carer::all();

哪个返回:

Illuminate/Database/QueryException 消息“找不到驱动程序(SQL:从 [dbo].[carer] 中选择 *)”

如果我在尝试检索模型数据时找不到驱动程序,这是否意味着我连接到数据库的检查有问题?我是否必须在 Laragon 中做一些特定的事情才能让它在 SQL Server 上工作?

谢谢。

更新:按照这里这里的说明,我已经成功地将 PDO 驱动程序添加到我的 php.ini 文件中,并让它与 Laragon 一起运行。当我打印出来时,phpinfo()我现在可以看到 sql servers。

我现在得到的错误是:

Illuminate/Database/QueryException with message 'SQLSTATE[08001]: [Microsoft][SQL Server 的 ODBC 驱动程序 17]TCP 提供程序:无法建立连接,因为目标机器主动拒绝它。(SQL: 从 [dbo].[carer] 中选择前 1 *)'


沧海一幻觉
浏览 106回答 1
1回答

慕少森

回答这个问题以防其他人陷入同一点。我的 Microsoft SQL Server 没有启用 TCP/IP 连接。你想要:打开 SQL Server 配置管理器在 SQL Server 网络配置下,为 MSSQLSERVER 选择协议右键单击 TCP/IP,然后单击启用重新启动 SQL Server (MSSQLSERVER)
打开App,查看更多内容
随时随地看视频慕课网APP