SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序:错误代码 0x2746
Posted
技术标签:
【中文标题】SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序:错误代码 0x2746【英文标题】:SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746 【发布时间】:2021-11-18 22:15:14 【问题描述】:我在 Ubuntu 20.04 上使用 php Laravel 7.4。并试图从位于另一个云上的 Windows 服务器中的 SQL 服务器获取数据。
此方法在我的 PC (Windows) 上进行了测试,它成功地从 windows 服务器(上面提到)获取了数据,但是在我的 ubuntu 服务器上,我遵循文档 ubuntu 20.04 PHP 7.4 https://docs.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 提供程序:错误代码 0x2746(SQL:myquery) “userId”:94,“异常”:“[对象] (照亮\数据库\查询异常(代码:08001):SQLSTATE [08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序:错误代码 0x2746 (SQL: myquery) 在 /var/www/web-api/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669)
我检查了 Microsoft SQL Server Management Studio 中的日志,发现每次从 Ubuntu 发出请求时都会出现此消息
"从远程客户端收到一个 TLS 1.2 连接请求 应用程序,但客户端不支持任何密码套件 服务器支持应用程序。 SSL 连接请求 失败了。”
【问题讨论】:
【参考方案1】:我想我在使用带有 laravel 的 mssql 时遇到了类似的错误。我通过在机器上安装和启用 mssql php 扩展解决了这个问题。也许会有所帮助。
【讨论】:
我按照你上面提到的做了,但我仍然面临同样的错误。但是,我检查了 MSSQL 中的日志,我注意到每次从 Ubuntu 发出请求时都会出现此消息“从远程客户端应用程序接收到 TLS 1.2 连接请求,但客户端应用程序支持的密码套件均不受支持服务器。SSL 连接请求失败。"【参考方案2】:使用带有thecodingmachine/php
8.0 的docker,我通过使用https://github.com/microsoft/msphpsql/issues/1023#issuecomment-732947905 的配置编辑/etc/ssl/openssl.cnf
解决了这个问题
【讨论】:
以上是关于SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序:错误代码 0x2746的主要内容,如果未能解决你的问题,请参考以下文章
db2 连接报错connect。 ERRORCODE=-4499, SQLSTATE=08001(转载)
SQLSTATE[08001]:[Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序:错误代码 0x2746
DB2:有关"ERRORCODE=-4499, SQLSTATE=08001"详解