尝试通过 tsql 连接到服务器时出现错误 20002 (OS X)
Error 20002 while trying to connect to a server through tsql (OS X)
我一直在使用这个指南通过 pyodbc 连接到数据库:https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX
我的配置文件如下所示,与教程并行:
在 freetds.conf:
[MYMSSQL]
host = localhost
port = 1433
tds version = 7.3
在odbc.ini中:
[MYMSSQL]
Description = Testing SQLServer
Driver = FreeTDS
Servername = MYMSSQL
在odbcinst.ini中:
[FreeTDS]
Description=FreeTDS Driver for Linux & MSSQL
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
UsageCount=1
当我使用“tsql -S MYMSSQL -U myuser -P mypassword”测试连接时,出现错误:
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
同样,“isql MYMSSQL myuser mypassword”returns 也是一个错误:
[ISQL]ERROR: Could not SQLConnect
编辑:在查询控制台中:
"SELECT @@SERVERNAME" returns "4a70ffff1294"
"SELECT @@SERVICENAME" returns "MSSQLSERVER"
"SELECT @@VERSION" returns "Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64)"
tsql -S MYMSSQL
returns
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
服务器在 docker 图像中 运行。我可以通过 pycharm 的数据库工具使用 1433 端口和相关密码连接到它。遗憾的是,我在管理服务器方面不是很有经验。非常感谢所有帮助。
如果您想继续沿着这条路走下去,我们需要更多信息。你的 freetds.conf
里有什么?您可以使用 telnet mssql.myhost.com 1433
从您尝试安装 FreeTDS 的机器连接到您的 SQL 服务器吗?
但是,我发现避免使用 freetds.conf
和 odbc.ini
并保留所有内容在 Python 中更容易。只要你已经正确配置 odbcinst.ini
,你应该可以做这样的事情:
import pyodbc
con = pyodbc.connect(
"DRIVER={FreeTDS};"
"SERVER=mssql.yourserver.com;"
"PORT=1433;"
"DATABASE=your_db;"
"UID=your_user;"
"PWD=your_pass;"
"TDS_Version=7.3;"
)
cursor = conn.cursor()
cursor.execute("SELECT 1")
for row in cursor.fetchall():
print(row)
祝你好运!
我一直在使用这个指南通过 pyodbc 连接到数据库:https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX
我的配置文件如下所示,与教程并行: 在 freetds.conf:
[MYMSSQL]
host = localhost
port = 1433
tds version = 7.3
在odbc.ini中:
[MYMSSQL]
Description = Testing SQLServer
Driver = FreeTDS
Servername = MYMSSQL
在odbcinst.ini中:
[FreeTDS]
Description=FreeTDS Driver for Linux & MSSQL
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
UsageCount=1
当我使用“tsql -S MYMSSQL -U myuser -P mypassword”测试连接时,出现错误:
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
同样,“isql MYMSSQL myuser mypassword”returns 也是一个错误:
[ISQL]ERROR: Could not SQLConnect
编辑:在查询控制台中:
"SELECT @@SERVERNAME" returns "4a70ffff1294"
"SELECT @@SERVICENAME" returns "MSSQLSERVER"
"SELECT @@VERSION" returns "Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64)"
tsql -S MYMSSQL
returns
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
服务器在 docker 图像中 运行。我可以通过 pycharm 的数据库工具使用 1433 端口和相关密码连接到它。遗憾的是,我在管理服务器方面不是很有经验。非常感谢所有帮助。
如果您想继续沿着这条路走下去,我们需要更多信息。你的 freetds.conf
里有什么?您可以使用 telnet mssql.myhost.com 1433
从您尝试安装 FreeTDS 的机器连接到您的 SQL 服务器吗?
但是,我发现避免使用 freetds.conf
和 odbc.ini
并保留所有内容在 Python 中更容易。只要你已经正确配置 odbcinst.ini
,你应该可以做这样的事情:
import pyodbc
con = pyodbc.connect(
"DRIVER={FreeTDS};"
"SERVER=mssql.yourserver.com;"
"PORT=1433;"
"DATABASE=your_db;"
"UID=your_user;"
"PWD=your_pass;"
"TDS_Version=7.3;"
)
cursor = conn.cursor()
cursor.execute("SELECT 1")
for row in cursor.fetchall():
print(row)
祝你好运!