簡體   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