【问题标题】:Laravel Microsoft Sql Server connection errorLaravel Microsoft Sql Server 连接错误
【发布时间】:2017-12-15 16:48:41
【问题描述】:

我收到以下错误,我不知道为什么:

Illuminate \ Database \ QueryException (08001) SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: 由于目标机器主动拒绝,无法建立连接。

.env 包含

DB_CONNECTION=sqlsrv
DB_HOST=server\name
DB_PORT=1433
DB_DATABASE=mydatabasename
DB_USERNAME=dbusername
DB_PASSWORD=dbuserpassword

database.php

'default' => env('DB_CONNECTION', 'sqlsrv'), 
    'connections' => [ 
    'sqlsrv' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST', 'server\name'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'mydatabasename'),
            'username' => env('DB_USERNAME', 'dbusername'),
            'password' => env('DB_PASSWORD', 'dbuserpassword'),
            'charset' => 'utf8',
            'prefix' => '',
            'pooling' => false,
        ],

    ],

在submitLogin函数中这一行的UserController.php中抛出错误:

if (Auth::attempt(['user_name'=>$request['user_name'], 'password'=>$request['password']])) {
            return redirect()->route('dashboard');
        }

并且用户模型定义了这些字段:

public $timestamps = false;
protected $table = 'USERS';
protected $primaryKey = 'USER_ID';

还有: 我正在使用 php 7.0.23,wamp64bit 3.1.0 带有扩展名:

extension=php_sqlsrv_7_ts_x86.dll
extension=php_sqlsrv_7_ts_x64.dll

extension=php_sqlsrv_7_nts_x86.dll
extension=php_sqlsrv_7_nts_x64.dll

extension=php_pdo_sqlsrv_7_ts_x86.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll

extension=php_pdo_sqlsrv_7_nts_x86.dll
extension=php_pdo_sqlsrv_7_nts_x64.dll

启用

我还应该注意数据库是预先存在的。

我可以做些什么或更改或修复以正确建立与服务器的连接?

【问题讨论】:

  • 听起来像是服务器上的防火墙问题或用户帐户在 sql server 中没有远程服务器访问权限。您可以使用具有 SSMS 的用户连接到 SQL Server 吗?
  • @DanielGale 是的,我可以与用户联系
  • 编辑 .env 文件后,您需要重新启动 Web 服务器以使这些设置生效。您是否按照此处的步骤进行操作? youtube.com/watch?v=28dc3edU2Uc
  • @DanielGale 是的,我已经观看了该视频并按照步骤操作。
  • 所有内容的正确 64 位实例? stackoverflow.com/questions/36472648/…

标签: php sql-server laravel laravel-5 sqlsrv


【解决方案1】:

当使用 SQLServer 作为 Laravel 的数据库服务器时,我发现配置应该如下:

1- 如果服务器配置了默认实例,例如 (server01\SQL01),那么我们应该将 DB_PORT 设置为 null 或空字符串 ('')

DB_GRH_HOSTNAME=127.0.0.1\SQLExpress01
DB_GRH_PORTNUMB=null

2- 如果服务器没有配置默认实例并且应该使用 TCP/IP 端口,那么我们应该将 DB_PORT 设置为服务器上配置的 tcp/ip 端口

DB_HOST=127.0.0.1
DB_PORT=1433

希望对某人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多