詳解Python連接MySQL數(shù)據(jù)庫的多種方式
上篇文章分享了windows下載mysql5.7壓縮包配置安裝mysql
后續(xù)可以選擇
①在本地創(chuàng)建一個(gè)數(shù)據(jù)庫,使用navicat工具導(dǎo)出遠(yuǎn)程測試服務(wù)器的數(shù)據(jù)庫至本地,用于學(xué)習(xí)操作,且不影響測試服務(wù)器的數(shù)據(jù)
②連接測試服務(wù)器的數(shù)據(jù)庫賬號(hào)和密碼,在測試服務(wù)器上操作,內(nèi)部測試服務(wù)器的數(shù)據(jù)庫賬號(hào)和密碼在分配時(shí)會(huì)給不同賬號(hào)做權(quán)限限制,如不同賬號(hào)允許登錄的方式、開放的數(shù)據(jù)庫范圍、賬號(hào)可讀寫操作的權(quán)限都會(huì)不一樣,若出現(xiàn)一直使用代碼登錄不上遠(yuǎn)程數(shù)據(jù)庫服務(wù)器,應(yīng)檢查下賬號(hào)是否具有權(quán)限,可詢問負(fù)責(zé)管理測試服務(wù)器數(shù)據(jù)庫管理員。(本人親測不同賬號(hào)相同代碼,一個(gè)能操作成功一個(gè)報(bào)錯(cuò)連接不上數(shù)據(jù)庫;另,在navicat工具或pycharm ide內(nèi)配置可視化數(shù)據(jù)庫時(shí)賬號(hào)登錄需要使用ssh通道認(rèn)證,相同的賬號(hào)用python代碼連接卻完全不需要ssh遠(yuǎn)程連接的代碼,提供賬號(hào)和密碼就能登錄成功。數(shù)據(jù)庫權(quán)限限制相關(guān)的著實(shí)深!)
本次代碼實(shí)現(xiàn)連接遠(yuǎn)程服務(wù)器
由于MySQL服務(wù)器以獨(dú)立的進(jìn)程運(yùn)行,并通過網(wǎng)絡(luò)對外服務(wù),所以,需要支持Python的MySQL驅(qū)動(dòng)來連接到MySQL服務(wù)器。
目前,MySQL驅(qū)動(dòng)有幾種:
mysql-connector-python:是MySQL官方的純Python驅(qū)動(dòng);
MySQL-python:是封裝了MySQL C驅(qū)動(dòng)的Python驅(qū)動(dòng)。
安裝MySQL驅(qū)動(dòng):
pip install mysql-connector-python
測試是否安裝成功,測試python下是否可成功導(dǎo)入mysql.connector即可(import mysql.connector)
pip install MySQL-python (不支持python3)
測試是否安裝成功,測試python下是否可成功導(dǎo)入MySQLdb即可(import MySQLdb)
pip install mysqlclient (mysqlclient 完全兼容MySQLdb,同時(shí)支持python3)
測試是否安裝成功,測試python下是否可成功導(dǎo)入MySQLdb即可(import MySQLdb)
pip install PyMySQL
測試是否安裝成功,測試python下是否可成功導(dǎo)入pymysql即可(import pymysql)
python連接MySQL數(shù)據(jù)庫的多種方式(方式一)
# 方式一:
import mysql.connector
# 打開數(shù)據(jù)庫連接
db = mysql.connector.connect(host='*.*.*.*',
port=3306,
user='*', # 數(shù)據(jù)庫IP、用戶名和密碼
passwd='*',
charset = 'utf8')
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對象 cursor
cursor = db.cursor()
# 使用 execute() 方法執(zhí)行 SQL 查詢
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
# 使用 fetchone() 方法獲取單條數(shù)據(jù);使用 fetchall() 方法獲取所有數(shù)據(jù)
data = cursor.fetchall()
for item in data:
print(item[0])
# 關(guān)閉數(shù)據(jù)庫連接
db.close()
python連接MySQL數(shù)據(jù)庫的多種方式(方式二)
# 方式二:
import MySQLdb
# 打開數(shù)據(jù)庫連接
conn = MySQLdb.connect(host='*.*.*.*',
port=3306,
user='*',
passwd='*',
charset = 'utf8'
)
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對象 cursor
cursor = conn.cursor()
# 使用 execute() 方法執(zhí)行 SQL 查詢
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
cursor.execute("select * from tables_name")
# 使用 fetchone() 方法獲取單條數(shù)據(jù);使用 fetchall() 方法獲取所有數(shù)據(jù)
data = cursor.fetchall()
for item in data:
print(item)
# 關(guān)閉數(shù)據(jù)庫連接
cursor.close()
python連接MySQL數(shù)據(jù)庫的多種方式(方式三)
# 方式三:
import pymysql
# 打開數(shù)據(jù)庫連接
conn = pymysql.connect(host='*.*.*.*',
port=3306,
user='*',
passwd='*',
charset = 'utf8'
)
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對象 cursor
cursor = conn.cursor()
# 使用 execute() 方法執(zhí)行 SQL 查詢
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
cursor.execute("select * from tables_name")
# 使用 fetchone() 方法獲取單條數(shù)據(jù);使用 fetchall() 方法獲取所有數(shù)據(jù)
data = cursor.fetchall()
for item in data:
print(item[0])
# 關(guān)閉數(shù)據(jù)庫連接
cursor.close()
以上所述是小編給大家介紹的Python連接MySQL數(shù)據(jù)庫方式詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python的Flask框架路由實(shí)現(xiàn)詳解
這篇文章主要介紹了Python的Flask框架路由實(shí)現(xiàn)詳解,在啟動(dòng)程序時(shí),python解釋器會(huì)從上到下對代碼進(jìn)行解釋,當(dāng)遇到裝飾器時(shí),會(huì)執(zhí)行,并把函數(shù)對應(yīng)的路由以字典的形式進(jìn)行存儲(chǔ),當(dāng)請求到來時(shí),即可根據(jù)路由查找對應(yīng)要執(zhí)行的函數(shù)方法,需要的朋友可以參考下2023-08-08
如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取
這篇文章主要介紹了如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取,其中主要包括 實(shí)際業(yè)務(wù)數(shù)據(jù)沖突、樣本選取問題、數(shù)據(jù)共線性等思路2021-08-08
python數(shù)據(jù)抓取分析的示例代碼(python + mongodb)
本篇文章主要介紹了python數(shù)據(jù)抓取分析的示例代碼(python + mongodb),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Python基于QQ郵箱實(shí)現(xiàn)SSL發(fā)送
這篇文章主要介紹了Python基于QQ郵箱實(shí)現(xiàn)SSL發(fā)送,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
python實(shí)現(xiàn)圖書館研習(xí)室自動(dòng)預(yù)約功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖書館研習(xí)室自動(dòng)預(yù)約功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
pytorch?K折交叉驗(yàn)證過程說明及實(shí)現(xiàn)方式
這篇文章主要介紹了pytorch?K折交叉驗(yàn)證過程說明及實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Python處理不同接口間參數(shù)依賴的方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫接口自動(dòng)化測試,以有效地處理不同接口之間的參數(shù)依賴,并提供豐富的示例代碼,希望對大家有所幫助2024-01-01

