Windows “如何创建ODBC”;DSN“;用于跨平台测试?
我需要一个简单的ODBC测试场景对WIN,我可以配置非常简单,并确保它是在工作中支持另一个问题在 简而言之,我正在尝试在KVM/QEMU虚拟系统(192.168.1.12)中设置从Debian 10(192.168.1.2)到Windows 10的PyODBC/Python脚本连接 首先,在Windows 10/KVM上,我看到Windows “如何创建ODBC”;DSN“;用于跨平台测试?,windows,odbc,pyodbc,Windows,Odbc,Pyodbc,我需要一个简单的ODBC测试场景对WIN,我可以配置非常简单,并确保它是在工作中支持另一个问题在 简而言之,我正在尝试在KVM/QEMU虚拟系统(192.168.1.12)中设置从Debian 10(192.168.1.2)到Windows 10的PyODBC/Python脚本连接 首先,在Windows 10/KVM上,我看到ODBC数据源管理员有一个选项卡文件DSN和Microsoft文本驱动程序我可以使用FileDSN测试Python PyODBC与ODBC的连接吗?使用一个简单的CSV文
ODBC数据源管理员
有一个选项卡文件DSN
和Microsoft文本驱动程序
我可以使用FileDSN测试Python PyODBC与ODBC的连接吗?使用一个简单的CSV文件代替服务器???(我对ODBC的研究只发现运行的服务器实例)
接下来,我尝试的是:
- 我在Debian上安装了
- 关闭Windows 10防火墙,我可以在两个方向ping:
#Deb获胜$nmap-p 22 192.168.1.12
>测试网络连接192.168.1.2-第22页
- 在Windows 10/KVM上,我添加了一个带有Microsoft文本驱动程序的FileDSN。我创建了一个CSV文件(
),其中包含简单的头和一行数据(即odbc\u test\u 01.CSV
){'ID':1,'NAME':'FOO'}
- 创建了一个Jupyter笔记本,使测试更容易。以下是我的连接字符串和结果:
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)')
cn=pyodbc.connect(r'Driver={odbcdriver 17 for SQL Server};'#上面安装的驱动程序 r'FILEDSN=odbc_test_01.csv;#我尝试使用FILEDSN r'SERVER=192.168.1.12;'#使用ping测试KVM IP r'Trusted_Connection=no;'#显式;使用UID/PWD r'UID=;'#Windows用户名 r'PWD=',#Windows用户密码 自动提交=真) 操作错误:('HYT00','[HYT00][Microsoft][ODBC驱动程序17 for SQL Server]登录超时已过期(0)(SQLDriverConnection)')
- 使用相同的字符串从Debian命令行尝试了
:isql
isql-v-k''Driver={odbcdriver 17 for SQL Server};FILEDSN=odbc_test_01.csv;服务器=192.168.1.12;可信_连接=否;UID=;PWD='
/etc/odbc.ini
)或Windows注册表中的值的方法
如果您需要“克隆”Windows DSN条目以在Linux环境中使用,那么我的实用程序可能会有所帮助。它从Windows注册表中检索ODBC DSN,并以您可以用于在Linux上重新创建DSN的形式显示它
例如,假设我在Windows上有一个名为“mssql199”的DSN,当我在上面运行dump\u DSN.to\u text(“mssql199”)
时,我得到了它
[mssql199]
Driver=ODBC Driver 17 for SQL Server
Description=with UseFMTONLY
Server=192.168.0.199
Database=myDb
Encrypt=No
TrustServerCertificate=No
ClientCertificate=
KeystoreAuthentication=
KeystorePrincipalId=
KeystoreSecret=
KeystoreLocation=
UseFMTONLY=Yes
Trusted_Connection=No
要在Linux机器上使用相同的DSN,我必须
/etc/odbc.ini
(或等效文件,用于“系统DSN”)或~/.odbc.ini
(用于“用户DSN”)中,以使用DSN=mssql199
,或[ODBC]
头而不是[mssql199]
将该块保存到文件中,例如/home/gord/mssql199_file.dsn
(对于“文件dsn”),并使用FILEDSN=/home/gord/mssql199_file.dsn
Editre:“我可以使用FileDSN来测试Python PyODBC与ODBC的连接,使用一个简单的CSV文件代替服务器吗??”
不可以。Windows设备上的ODBC DSN或FILEDSN仅在从Windows设备连接到数据源(本地或其他计算机上)时有用。我们无法从一台机器(如Linux)连接到另一台机器上的ODBC DSN条目我创建了一个SQLite数据库。然后我补充道