Laravel 5.6无法连接SQLEXPRESS的问题求助
Laravel 5.6 连接 SQL Server Express 执行迁移时报错:目标机器主动拒绝连接
我正在尝试将 Laravel 5.6 连接至 SQL Server Express,但执行数据库迁移时遇到了如下错误:
SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: No connection could be made because the target machine actively refused it. (SQL: select * from sysobjects where type = 'U' and name = migrations)
我已经为 PHP 安装了 sqlsrv 扩展,并且通过以下测试脚本验证过连接是成功的:
<?php $serverName = "MYNAME\\SQLEXPRESS"; $connectionInfo = array( "Database"=>"Portal", "UID"=>"sa", "PWD"=>"mySecretPwd"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } ?>
测试结果显示连接正常,且 phpinfo() 中也能看到 sqlsrv 扩展已加载。
但配置 Laravel 后仍报错,我的相关配置如下:
.env 文件配置:
DB_CONNECTION=sqlsrv DB_HOST=MYNAME\\SQLEXPRESS DB_PORT=1433 DB_DATABASE=Portal DB_USERNAME=sa DB_PASSWORD=mySecredPwd
config/database.php 配置:
'default' => env('DB_CONNECTION', 'sqlsrv'), 'connections' => [ // ...其他连接配置 'sqlsrv' => [ 'driver' => 'sqlsrv', 'host' => env('DB_HOST', 'MYNAME\\SQLEXPRESS'), 'port' => env('DB_PORT', '1433'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', ], ],
我的 SQL Server 配置管理器截图如下:
另外,我可以通过 SQL Server Management Studio 2017 正常连接该数据库,有没有朋友能帮我排查下 Laravel 配置的问题?
内容的提问来源于stack exchange,提问作者Greg Ostry
相关产品推荐
相关产品推荐

