[python]連接SQL Server 2017 Express障礙排除

目的


  • 2019/8/27更新:安裝python的時候把Add Python 3.X to PATH打勾(X為版本)
  • 用python連接SQL資料庫操作
  • 希望以後減少耗在這類基礎環境設定上

問題描述

從網路尋找連接SQL的方法時,目前主要為使用python的ODBC套件連接。但大部分是已經有一定經驗的人,有些前置作業不會詳細解釋,因此在操作的時候幾乎每一個步驟都遇上問題。以下為每個步驟以及遇上的問題及解決方法:

安裝pyodbc

    1. 網路常見描述:pip install pyodbc
    2. 執行以系統管理員身分執行命令提示字元
    3. 錯誤訊息:pip 不是內部或外部命令、可執行的程式或批次檔。
    4. 原因:安裝python的時候沒有把Add Python X to PATH打勾(X為版本,是安裝版本而定),所以系統環境變數沒有包含pip的路徑,也就是python安裝路徑
    5. 解決方式:
      1. 系統內容>進階>環境變數>系統變數
      2. 選擇Path,點選編輯
      3. 點選新增,加入python安裝路徑
    6. 再重新執行pip install pyodbc
    7. 安裝成功

在python的編譯器中連接SQL Server(本機)

    1. import pyodbc
    2. 連接語法:
    3. con = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=pythontest;UID=User;PWD=Password')
      1. DRIVER:ODBC驅動程式名稱,本例使用的是SQL Server
      2. SERVER:伺服器名稱
      3. DATABASE:資料庫名稱
      4. UID:使用者名稱
      5. PWD:使用者密碼
    4. 錯誤訊息:SQL Server 不存在或拒絕存取。
      • 詳細錯誤訊息:
      • [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或拒絕存取。 (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53)'
    5. 原因:不確定,再找到訊息代碼前就解決了,推測是因為防火牆沒有開,或是Port沒有設定進去。
    6. 解決方式:(嘗試)
      • 設定port
        1. 開啟SQL Server 2017組態管理員
        2. SQL Server 網路組態>SQLEXPRESS的通訊協定>TCP/IP,改成'啟用'
        3. SQL Native Client 11.0 組態>用戶端通訊息協定>TCP/IP>內容,預設通訊埠改成1433
        4. 重啟SQL Server服務
    7. 重新輸入語法
    8. 無錯誤訊息,連結成功

參考資料:

留言

這個網誌中的熱門文章

[HelpDeskNote][Hyper-V]Hyper-V管理員無法連線本機伺服器

[HelpDeskNote]Win7/Win10 升級Upgrage後Microsoft 日文IME輸入法無法切換英數與假名

[HelpDeskNote][MMC]無法建立嵌入式管理單元-安裝RSAT後解決