Laravel微软Sql服务器连接错误

问题描述 投票:4回答:1

我得到以下错误,不知道为什么。

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

数据库.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,
        ],

    ],

在UserController.php中的这行submitLogin函数中抛出了错误。

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';

另外:我使用php7.0.23, wamp64bit 3.1.0with extensions:

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

启用enter image description here

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

我可以做什么或改变或修复,以使连接到服务器的建立没有错误?

php sql-server laravel laravel-5 sqlsrv
1个回答
0
投票

在使用SQLServer作为Laravel的数据库服务器时,发现配置应该按以下方式进行:

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

DB_GRH_HOSTNAME=127.0.0.1\SQLExpress01
DB_GRH_PORTNUMB=null

2- 如果服务器没有配置默认的实例,应该使用TCPIP端口,那么我们应该将DB_PORT设置为服务器上配置的tcpip端口。

DB_HOST=127.0.0.1
DB_PORT=1433

希望对大家有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.