我得到了一个ubuntu容器,它运行php 5.5.9,laraverl 5.2,可以成功地连接到Server并获得结果。
我使用的码头图像是https://hub.docker.com/r/h2labs/laravel-mssql/
我遇到的问题是服务器使用加密,我找不到如何将以下参数传递给mssql的laravel连接字符串
ENCRYPT=yes;trustServerCertificate=true我的Server连接字符串目前如下所示
DB_CONNECTION=sqlsrv
DB_HOST=sql.mydomain.com
DB_PORT=1433
DB_DATABASE=mydbname
DB_USERNAME=mysusername
DB_PASSWORD=mypass我的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' => '',
],Server错误日志条目是
连接到此服务器需要加密,但客户端库不支持加密;连接已关闭。请升级您的客户库。客户: 103.31.114.56
发布于 2017-04-12 06:57:18
对这两个选项的支持都没有引入直到Laravel 5.4,特别是v5.4.11。
因此,您首先需要升级到laravel/framework:>=5.4.11,<5.5
然后,要配置应用程序,您需要修改config/database.php文件,如下所示:
// ...
'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' => '',
'encrypt' => 'yes', // alternatively, defer to an env variable
'trust_server_certificate' => 'true', // alternatively, defer to an env variable
],
// ...DatabaseServiceProvider,通过ConnectionFactory和SqlServerConnector将使用它与DSN中设置的选项构建底层的PDO连接。
https://stackoverflow.com/questions/43359009
复制相似问题