提问人:nsk 提问时间:10/17/2021 最后编辑:jarlhnsk 更新时间:11/23/2023 访问量:10852
使用 putty 私钥、sqlalchemy 和 pyodbc 从 linux 环境连接到 sql serverConnect to sql server using putty private key, sqlalchemy and pyodbc
Connect to sql server from linux environment using putty private key, sqlalchemy and pyodbc
问:
嗨,我正在尝试从 linux(ubuntu 服务器)的 sql 服务器读取数据帧。 文件(gscm.ppk)包含管理密钥
我使用以下格式连接到sql server:
*import urllib
import pandas as pd
params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client
11.0};"
"SERVER=dagger;"
"DATABASE=test;"
"UID=ubuntu;")
engine = sa.create_engine("mssql+pyodbc:///?odbc_connect=
{}".format(params))
df= pd.read_sql('SELECT * FROM ROBALS', engine)*
我一直收到此错误:
sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC]
[Driver Manager]Can't open lib 'SQL Server' : file not found (0)
(SQLDriverConnect)")
(Background on this error at: https://sqlalche.me/e/14/dbapi)
我已经下载了 Ubuntu 20.04 附带的驱动程序
答:
0赞
Matt Kornfield
12/7/2023
#1
您的代码看起来大部分都很好,只是该参数看起来被忽略/不太正确。我无法判断它是否与代码中的空格有关,但是如果我在我的实例上运行此代码,我会得到类似的错误,但它将引用正确的实例。Driver
根据这个答案,我将驱动程序更新为路径,并且我没有查找失败,因此,如果您安装了 odbcsql18 驱动程序,则如下所示,可能会用作替代。
"DRIVER=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.1.1;"
我已使用以下方法在容器上安装了这些较新的驱动程序
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt-get update && ACCEPT_EULA=Y apt install unixodbc jq msodbcsql18 mssql-tools18 unixodbc-dev -y
评论