我在我的项目中使用sqlsrv 数据库连接,因为我需要连接到 Microsoft SQL 数据库。
我已经成功安装了sqlsrv 驱动程序,因为我可以连接到数据库来检索数据。
但是当我尝试进行 Laravel 迁移时,它显示了一个错误:
Illuminate\Database\QueryException : could not find driver (SQL: select * from sysobjects where type = 'U' and name = migrations)
Run Code Online (Sandbox Code Playgroud)
下面是我的 .env
DB_CONNECTION=sqlsrv
DB_HOST=**********.database.windows.net
DB_PORT=1433
DB_DATABASE=****************_4cd1_9d18_2a7d9ddbcd13
DB_USERNAME=***************_4cd1_9d18_2a7d9ddbcd13_ExternalWriter
DB_PASSWORD=***************
Run Code Online (Sandbox Code Playgroud)
配置文件
extension=php_xmlrpc.dll
extension=php_xsl.dll
extension=php_pdo_sqlsrv_7_nts_x64.dll
extension=php_pdo_sqlsrv_7_nts_x86.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_ts_x86.dll
extension=php_pdo_sqlsrv_71_nts_x64.dll
extension=php_pdo_sqlsrv_71_nts_x86.dll
extension=php_pdo_sqlsrv_71_ts_x64.dll
extension=php_pdo_sqlsrv_71_ts_x86.dll
extension=php_sqlsrv_7_nts_x64.dll
extension=php_sqlsrv_7_nts_x86.dll
extension=php_sqlsrv_7_ts_x64.dll
extension=php_sqlsrv_7_ts_x86.dll
extension=php_sqlsrv_71_nts_x64.dll
extension=php_sqlsrv_71_nts_x86.dll
extension=php_sqlsrv_71_ts_x64.dll
extension=php_sqlsrv_71_ts_x86.dll
Run Code Online (Sandbox Code Playgroud) 我有一个运行 php 5.5.9、laraverl 5.2 的 ubuntu docker 容器,它可以成功连接到 SQL Server 并获取结果。
我使用的docker镜像是https://hub.docker.com/r/h2labs/laravel-mssql/
我遇到的问题是服务器使用加密,我找不到如何将以下参数传递给 mssql 的 laravel 连接字符串
ENCRYPT=yes;trustServerCertificate=true
Run Code Online (Sandbox Code Playgroud)
我的 SQL Server 连接字符串目前看起来像这样
DB_CONNECTION=sqlsrv
DB_HOST=sql.mydomain.com
DB_PORT=1433
DB_DATABASE=mydbname
DB_USERNAME=mysusername
DB_PASSWORD=mypass
Run Code Online (Sandbox Code Playgroud)
我的 laravel 数据库配置如下所示
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
Run Code Online (Sandbox Code Playgroud)
SQL Server 错误日志条目是
连接到该服务器需要加密,但客户端库不支持加密;连接已关闭。请升级您的客户端库。[客户端:103.31.114.56]