繁体   English   中英

Jupyter:无法使用 pyodbc 连接到 MS SQL Server

[英]Jupyter: can't connect to MS SQL Server with pyodbc

我无法在我的 Jupyter 笔记本中连接到 MS SQL Server:

代码:

import pyodbc
pyodbc.drivers()

输出:

[]

没有什么!

连接字符串:

db_connection = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                               'Server=Server IP;'
                               'Database=DB_Main;'
                               'UID=DB_User;'
                               'PWD=secrets')

我使用的每个可能的驱动程序字符串都收到相同的基本消息:

错误:('01000',“[01000] [unixODBC][Driver Manager]无法打开 lib 'ODBC Driver 17 for SQL Server':找不到文件(0)(SQLDriverConnect)”)

由于pyodbc.drivers()未显示任何内容,因此安装似乎已停止。

更新:我无法按照此处的建议使用 INI 文件获得符号链接解决方案: Can't open lib 'ODBC Driver 13 for SQL Server'? 符号链接问题?

直接指定驱动程序,如下面的答案所示。

我最终不得不像这样直接指定驱动程序:

driver = '/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so'
ip = "10.10.10.1"
db_connection = pyodbc.connect(
    driver = driver,
    Server = ip,
    Port = "49189",
    Database = "project_db",
    UID = "db_user",
    PWD = "secrets" )

在服务器上安装 TDS 和 ODBC 包,然后使用find搜索libtdsodbc.so驱动程序。 尽管可能还有其他更简单的方法,但这工作得很好。

尝试安装 ODBC 驱动程序 (13/17) 并且您的 pyodbc.drivers() 应该返回驱动程序信息,然后您应该可以连接。

你们中的任何人都可以帮助我在 macOS (Big Sur) 上建立连接吗? 我已经安装了驱动程序(用于 SQL Server 的 ODBC 驱动程序 17),但仍然出现错误:

  1. OperationalError: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]登录超时过期 (0) (SQLDriverConnect)')(此错误的背景:https://sqlalche .me/e/14/e3q8)

  2. OperationalError: (pymssql._pymssql.OperationalError)(18456,b'DB-Lib 错误消息 20009,严重性 9:\\n无法连接:Adaptive Server 不可用或不存在(使用 pymssql)

  3. OperationalError: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]客户端无法建立连接 (0) (SQLDriverConnect)')(此错误的背景:https:// /sqlalche.me/e/14/e3q8)

注意:我可以使用 pymssql 读取数据,但无法使用 df.to_sql 将 Dataframe 写入 MSSQL 服务器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM