php SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP提供程序:错误代码0x2746

dgenwo3n  于 2023-03-28  发布在  PHP
关注(0)|答案(3)|浏览(628)

我在Ubuntu 20.04上使用PHP Laravel 7.4,并试图从位于另一个云上的Windows服务器中的SQL服务器获取数据。
这个方法是在我的PC上测试(Windows),它成功地从Windows服务器(上面提到的),但在我的ubuntu服务器上,我遵循文件ubuntu 20.04 PHP 7.4 https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15
我得到这个错误:
SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP提供程序:错误代码0x 2746(SQL:myquery){“userId”:94,“exception”:“[object](Illuminate\Database\QueryException(code:08001):SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP提供程序:错误代码0x 2746(SQL:myquery)at /var/www/web-api/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669)
我检查了MicrosoftSQLServerManagementStudio中的日志,发现每次从Ubuntu发出请求时都会出现此消息
从远程客户端应用程序收到TLS 1.2连接请求,但服务器不支持客户端应用程序支持的任何密码套件。SSL连接请求失败。

gwbalxhn

gwbalxhn1#

请尝试以下步骤:
1.安装sqsrv & pdo_sqlsrv扩展并重启apache
1.在config/database.phpsqlsrv数组中更新并注解下面提到的行
'port' =〉env('DB_PORT','1433'),
sqlsrv驱动程序的最终值如下所示:

'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            // 'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
        ],

1.在项目目录的命令行中点击这两个命令

composer dump-autoload

  php artisan config:clear
lztngnrs

lztngnrs2#

使用docker和thecodingmachine/php 8.0,我通过使用www.example.com的配置编辑/etc/ssl/openssl.cnf解决了这个问题https://github.com/microsoft/msphpsql/issues/1023#issuecomment-732947905

frebpwbc

frebpwbc3#

我想我在使用mssql和laravel时也遇到过类似的错误。我通过在机器上安装并启用mssql php扩展解决了这个问题。也许这会有帮助。

相关问题