詳解Python連接MySQL數(shù)據(jù)庫(kù)的多種方式
上篇文章分享了windows下載mysql5.7壓縮包配置安裝mysql
后續(xù)可以選擇
①在本地創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),使用navicat工具導(dǎo)出遠(yuǎn)程測(cè)試服務(wù)器的數(shù)據(jù)庫(kù)至本地,用于學(xué)習(xí)操作,且不影響測(cè)試服務(wù)器的數(shù)據(jù)
②連接測(cè)試服務(wù)器的數(shù)據(jù)庫(kù)賬號(hào)和密碼,在測(cè)試服務(wù)器上操作,內(nèi)部測(cè)試服務(wù)器的數(shù)據(jù)庫(kù)賬號(hào)和密碼在分配時(shí)會(huì)給不同賬號(hào)做權(quán)限限制,如不同賬號(hào)允許登錄的方式、開(kāi)放的數(shù)據(jù)庫(kù)范圍、賬號(hào)可讀寫(xiě)操作的權(quán)限都會(huì)不一樣,若出現(xiàn)一直使用代碼登錄不上遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器,應(yīng)檢查下賬號(hào)是否具有權(quán)限,可詢(xún)問(wèn)負(fù)責(zé)管理測(cè)試服務(wù)器數(shù)據(jù)庫(kù)管理員。(本人親測(cè)不同賬號(hào)相同代碼,一個(gè)能操作成功一個(gè)報(bào)錯(cuò)連接不上數(shù)據(jù)庫(kù);另,在navicat工具或pycharm ide內(nèi)配置可視化數(shù)據(jù)庫(kù)時(shí)賬號(hào)登錄需要使用ssh通道認(rèn)證,相同的賬號(hào)用python代碼連接卻完全不需要ssh遠(yuǎn)程連接的代碼,提供賬號(hào)和密碼就能登錄成功。數(shù)據(jù)庫(kù)權(quán)限限制相關(guān)的著實(shí)深?。?/p>
本次代碼實(shí)現(xiàn)連接遠(yuǎn)程服務(wù)器
由于MySQL服務(wù)器以獨(dú)立的進(jìn)程運(yùn)行,并通過(guò)網(wǎng)絡(luò)對(duì)外服務(wù),所以,需要支持Python的MySQL驅(qū)動(dòng)來(lái)連接到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
測(cè)試是否安裝成功,測(cè)試python下是否可成功導(dǎo)入mysql.connector即可(import mysql.connector)
pip install MySQL-python (不支持python3)
測(cè)試是否安裝成功,測(cè)試python下是否可成功導(dǎo)入MySQLdb即可(import MySQLdb)
pip install mysqlclient (mysqlclient 完全兼容MySQLdb,同時(shí)支持python3)
測(cè)試是否安裝成功,測(cè)試python下是否可成功導(dǎo)入MySQLdb即可(import MySQLdb)
pip install PyMySQL
測(cè)試是否安裝成功,測(cè)試python下是否可成功導(dǎo)入pymysql即可(import pymysql)
python連接MySQL數(shù)據(jù)庫(kù)的多種方式(方式一)
# 方式一: import mysql.connector # 打開(kāi)數(shù)據(jù)庫(kù)連接 db = mysql.connector.connect(host='*.*.*.*', port=3306, user='*', # 數(shù)據(jù)庫(kù)IP、用戶(hù)名和密碼 passwd='*', charset = 'utf8') # 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象 cursor cursor = db.cursor() # 使用 execute() 方法執(zhí)行 SQL 查詢(xún) 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ù)庫(kù)連接 db.close()
python連接MySQL數(shù)據(jù)庫(kù)的多種方式(方式二)
# 方式二: import MySQLdb # 打開(kāi)數(shù)據(jù)庫(kù)連接 conn = MySQLdb.connect(host='*.*.*.*', port=3306, user='*', passwd='*', charset = 'utf8' ) # 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象 cursor cursor = conn.cursor() # 使用 execute() 方法執(zhí)行 SQL 查詢(xún) 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ù)庫(kù)連接 cursor.close()
python連接MySQL數(shù)據(jù)庫(kù)的多種方式(方式三)
# 方式三: import pymysql # 打開(kāi)數(shù)據(jù)庫(kù)連接 conn = pymysql.connect(host='*.*.*.*', port=3306, user='*', passwd='*', charset = 'utf8' ) # 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象 cursor cursor = conn.cursor() # 使用 execute() 方法執(zhí)行 SQL 查詢(xún) 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ù)庫(kù)連接 cursor.close()
以上所述是小編給大家介紹的Python連接MySQL數(shù)據(jù)庫(kù)方式詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python?中strip()函數(shù)詳細(xì)說(shuō)明及使用方法
strip()函數(shù)是Python字符串方法之一,用于處理字符串的前導(dǎo)和尾隨空白字符,它返回一個(gè)新字符串,該字符串是原始字符串去除前導(dǎo)和尾隨空格(包括空格、制表符、換行符等)后的結(jié)果,這篇文章主要介紹了Python?中strip()函數(shù)詳細(xì)說(shuō)明及使用方法,需要的朋友可以參考下2024-02-02使用sklearn對(duì)多分類(lèi)的每個(gè)類(lèi)別進(jìn)行指標(biāo)評(píng)價(jià)操作
這篇文章主要介紹了使用sklearn對(duì)多分類(lèi)的每個(gè)類(lèi)別進(jìn)行指標(biāo)評(píng)價(jià)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06使用Python批量刪除MySQL數(shù)據(jù)庫(kù)的全部外鍵
這篇文章主要為大家詳細(xì)介紹了如何使用Python批量刪除MySQL數(shù)據(jù)庫(kù)的全部外鍵,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類(lèi)
今天小編就為大家分享一篇利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類(lèi),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01關(guān)于Python的一些學(xué)習(xí)總結(jié)
這篇文章主要介紹了關(guān)于Python的一些總結(jié),希望自己以后在學(xué)習(xí)Python的過(guò)程中可以邊學(xué)習(xí)邊總結(jié),就自己之前的學(xué)習(xí)先做以總結(jié),之后將不斷總結(jié)更新2018-05-05Python下使用Scrapy爬取網(wǎng)頁(yè)內(nèi)容的實(shí)例
今天小編就為大家分享一篇Python下使用Scrapy爬取網(wǎng)頁(yè)內(nèi)容的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python之tensorflow手把手實(shí)例講解貓狗識(shí)別實(shí)現(xiàn)
要說(shuō)到深度學(xué)習(xí)圖像分類(lèi)的經(jīng)典案例之一,那就是貓狗大戰(zhàn)了。貓和狗在外觀上的差別還是挺明顯的,無(wú)論是體型、四肢、臉龐和毛發(fā)等等, 都是能通過(guò)肉眼很容易區(qū)分的。那么如何讓機(jī)器來(lái)識(shí)別貓和狗呢?網(wǎng)上已經(jīng)有不少人寫(xiě)過(guò)這案例了,我也來(lái)嘗試下練練手。2021-09-09