python連接本地SQL?server詳細(xì)圖文教程
一.設(shè)置本地賬號(hào)
1.新建用戶
在對(duì)象資源管理其中,選中 安全性/登錄名 右鍵新建登錄名
在彈出的對(duì)話框中,設(shè)置登錄名為“sa”(sa是最高權(quán)限用戶名,也可以自定義,但不推薦),選擇“SQL Server身份驗(yàn)證”,設(shè)置密碼,在“默認(rèn)數(shù)據(jù)庫(kù)”中選擇我們需要建立聯(lián)系的目標(biāo)數(shù)據(jù)庫(kù),“默認(rèn)語(yǔ)言”為簡(jiǎn)體中文。
最后在“狀態(tài)”選項(xiàng)卡下選擇“啟用”并確保“允許連接”復(fù)選框被選中。
2.開(kāi)啟雙重驗(yàn)證
在資源對(duì)象管理器中,右鍵單擊SQL Server實(shí)例名稱并選擇“屬性”。
在彈出的對(duì)話框中,選擇“安全性”選項(xiàng)卡,將“身份驗(yàn)證”設(shè)置為“SQL Server和Windows身份驗(yàn)證模式”,并選擇“確定”以保存更改。
3,開(kāi)啟TCP/IP本地服務(wù)
在SQL Server Configuration Manager中,右鍵“SQL Server網(wǎng)絡(luò)配置”,選擇“TCP/IP”協(xié)議,點(diǎn)擊“啟用”。
選擇TCP/IP屬性,選擇IP,將“TCP動(dòng)態(tài)端口”設(shè)置為0
然后找到“IPALL”選項(xiàng),將“TCP端口”設(shè)置為1433(或其他的端口號(hào))。
保存更改并重啟SQL Server服務(wù)。
完成以上步驟后,即可使用Python連接本地SQL Server數(shù)據(jù)庫(kù)。
二.python連接實(shí)例
注意,下文是本地連接用法,也就是只能連接本機(jī)服務(wù)器的數(shù)據(jù)庫(kù),想要連接外地服務(wù)器請(qǐng)參考其它文章。
以 Pycharm為例
1.下載支持庫(kù)
有用pymssql的方法,但是我沒(méi)成功,于是換了另一個(gè)用pyodbc的方法
進(jìn)入Anaconda Prompt,進(jìn)入已有環(huán)境,輸入一下命令下載支持庫(kù)(這里命令末尾添加了阿里云鏡像源,能下載的快一點(diǎn))
pip install pyodbc -i https://mirrors.aliyun.com/pypi/simple/
2.驗(yàn)證連接
創(chuàng)建一個(gè) .py文件,編輯以下代碼驗(yàn)證能否建立連接:
import pyodbc server = 'localhost' # 這里就寫localhost就可以了 user = '之前創(chuàng)建的用戶名' password = '給對(duì)應(yīng)賬戶設(shè)置的密碼' database = '想要建立連接的數(shù)據(jù)庫(kù)名' try: conn_str = f'DRIVER={{SQL Server}};SERVER={server};DATABASE={database};UID={user};PWD={password};TrustServerCertificate=yes' connect = pyodbc.connect(conn_str) print("連接成功") except pyodbc.Error as e: print(f"連接失敗: {e}")
3.可能失敗原因
需要注意的是,如果沒(méi)有創(chuàng)建sa賬戶的話,這里應(yīng)該要先給對(duì)應(yīng)數(shù)據(jù)庫(kù)開(kāi)起用戶權(quán)限
在對(duì)象資源管理器中,右鍵對(duì)應(yīng)數(shù)據(jù)庫(kù),點(diǎn)擊屬性,點(diǎn)擊文件,點(diǎn)擊如圖紅框
點(diǎn)擊瀏覽,選中需要基于權(quán)限的用戶,但是好像只能選擇一個(gè)
如圖,我選擇了sd用戶,點(diǎn)擊確定,再點(diǎn)擊確定就可以了。
最后顯示連接成功:
三.基本查詢語(yǔ)法使用
import pyodbc server = 'localhost' # 這里就寫localhost就可以了 user = '之前創(chuàng)建的用戶名' password = '給對(duì)應(yīng)賬戶設(shè)置的密碼' database = '想要建立連接的數(shù)據(jù)庫(kù)名' conn_str = f'DRIVER={{SQL Server}};SERVER={server};DATABASE={database};UID={user};PWD={password};TrustServerCertificate=yes' connect = pyodbc.connect(conn_str) print("連接成功") # 創(chuàng)建游標(biāo)對(duì)象 cursor = connect.cursor() # 執(zhí)行查詢語(yǔ)句,這里查詢作者數(shù)據(jù)庫(kù)里的圖書(shū)表 query = "SELECT * FROM 圖書(shū)" cursor.execute(query) # 獲取查詢結(jié)果 rows = cursor.fetchall() # 打印查詢結(jié)果 if rows: print("圖書(shū)表的數(shù)據(jù)如下:") for row in rows: print(row) # 關(guān)閉游標(biāo)和連接 cursor.close() connect.close()
結(jié)果如下,沒(méi)有亂碼問(wèn)題,不知道是不是引用庫(kù)不一樣的原因,pymssql庫(kù)看很多博主講是有代碼的,反正不管,能成功就行。
總結(jié)
到此這篇關(guān)于python連接本地SQL server的文章就介紹到這了,更多相關(guān)python連接本地SQL server內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的lambda匿名函數(shù)的簡(jiǎn)單介紹
Python的lambda匿名函數(shù)的簡(jiǎn)單介紹,需要的朋友可以參考一下2013-04-04Python Django 簡(jiǎn)單分頁(yè)的實(shí)現(xiàn)代碼解析
這篇文章主要介紹了Python Django 簡(jiǎn)單分頁(yè)的實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08PyQt5內(nèi)嵌瀏覽器注入JavaScript腳本實(shí)現(xiàn)自動(dòng)化操作的代碼實(shí)例
今天小編就為大家分享一篇關(guān)于PyQt5內(nèi)嵌瀏覽器注入JavaScript腳本實(shí)現(xiàn)自動(dòng)化操作的代碼實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02Python數(shù)據(jù)結(jié)構(gòu)dict常用操作代碼實(shí)例
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)dict常用操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python cookie反爬處理的實(shí)現(xiàn)
這篇文章主要介紹了python cookie反爬處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11python機(jī)器學(xué)習(xí)deepchecks庫(kù)訓(xùn)練檢查模型特點(diǎn)探索
這篇文章主要介紹了python機(jī)器學(xué)習(xí)deepchecks庫(kù)的訓(xùn)練檢查模型特點(diǎn)實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01