【发布时间】:2021-07-24 19:53:05
【问题描述】:
我需要一个关于 WIN 的简单 ODBC 测试场景,我可以非常简单地对其进行配置,并确保它能够支持Unix.SE 上的另一个问题。
简而言之,我正在尝试在 KVM/QEMU 虚拟系统 (192.168.1.12) 中设置从 Debian 10 (192.168.1.2) 到 Windows 10 的 PyODBC/Python 脚本连接。
首先,在 Windows 10/KVM 上,我看到 ODBC Data Source Administrator 有一个标签 File DSN 和 Microsoft Text Driver。 我可以使用 FileDSN 测试 Python PyODBC 与 ODBC 的连接,使用一个简单的 CSV 文件代替服务器吗?(我对 ODBC 的研究只发现正在运行的服务器实例)。
接下来,我尝试了什么:
-
在 Debian 上,我安装了 ODBC Microsoft driver for Linux。
-
关闭 Windows 10 防火墙,我可以双向 ping:
$nmap -p 22 192.168.1.12#Deb 赢> Test-NetConnection 192.168.1.2 -p 22#赢给Deb -
在 Windows 10/KVM 上,我使用 Microsoft 文本驱动程序添加了 FileDSN。我创建了一个带有简单标题和一行数据的 CSV 文件 (
odbc_test_01.csv) (IE.{'ID' : 1, 'NAME' : 'FOO'}) -
创建了一个 Jupyter Notebook 以简化测试。这是我的连接字符串和结果:
cn = pyodbc.connect(r'Driver={ODBC Driver 17 for SQL Server};' # Driver installed above r'FILEDSN=odbc_test_01.csv;' # my attempt at FileDSN r'SERVER=192.168.1.12;' # KVM IP tested with ping r'Trusted_Connection=no;' # explicit; use UID/PWD r'UID=<username>;' # Windows user name r'PWD=<password>', # Windows user password autocommit=True) OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)') -
用相同的字符串从 Debian 命令行尝试
isql:isql -v -k ''Driver={ODBC Driver 17 for SQL Server};FILEDSN=odbc_test_01.csv;SERVER=192.168.1.12; Trusted_Connection=no;UID=<username>;PWD=<password>'
SO 的类似页面:
Authenticate from Linux to Windows SQL Server with pyodbc
Python pyodbc connect to Sql Server using SQL Server Authentication
【问题讨论】: