目的
- 2019/8/27更新:安裝python的時候把Add Python 3.X to PATH打勾(X為版本)
- 用python連接SQL資料庫操作
- 希望以後減少耗在這類基礎環境設定上
問題描述
從網路尋找連接SQL的方法時,目前主要為使用python的ODBC套件連接。但大部分是已經有一定經驗的人,有些前置作業不會詳細解釋,因此在操作的時候幾乎每一個步驟都遇上問題。以下為每個步驟以及遇上的問題及解決方法:
安裝pyodbc
- 網路常見描述:pip install pyodbc
- 執行以系統管理員身分執行命令提示字元
- 錯誤訊息:pip 不是內部或外部命令、可執行的程式或批次檔。
- 原因:安裝python的時候沒有把Add Python X to PATH打勾(X為版本,是安裝版本而定),所以系統環境變數沒有包含pip的路徑,也就是python安裝路徑
- 解決方式:
- 系統內容>進階>環境變數>系統變數
- 選擇Path,點選編輯
- 點選新增,加入python安裝路徑
- 再重新執行pip install pyodbc
- 安裝成功
在python的編譯器中連接SQL Server(本機)
- import pyodbc
- 連接語法:
- con = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=pythontest;UID=User;PWD=Password')
- DRIVER:ODBC驅動程式名稱,本例使用的是SQL Server
- SERVER:伺服器名稱
- DATABASE:資料庫名稱
- UID:使用者名稱
- PWD:使用者密碼
- 錯誤訊息:SQL Server 不存在或拒絕存取。
- 詳細錯誤訊息:
- [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或拒絕存取。 (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53)'
- 原因:不確定,再找到訊息代碼前就解決了,推測是因為防火牆沒有開,或是Port沒有設定進去。
- 解決方式:(嘗試)
- 開啟SQL Server 2017組態管理員
- SQL Server 網路組態>SQLEXPRESS的通訊協定>TCP/IP,改成'啟用'
- SQL Native Client 11.0 組態>用戶端通訊息協定>TCP/IP>內容,預設通訊埠改成1433
- 重啟SQL Server服務
- 重新輸入語法
- 無錯誤訊息,連結成功
參考資料:
留言
張貼留言