溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

詳解Python連接MySQL數(shù)據(jù)庫(kù)的多種方式

發(fā)布時(shí)間:2020-10-25 04:32:28 來(lái)源:腳本之家 閱讀:167 作者:kristin_n 欄目:開(kāi)發(fā)技術(shù)

上篇文章分享了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)限,可詢問(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、用戶名和密碼
        passwd='*',
        charset = 'utf8')  
 
# 使用 cursor() 方法創(chuàng)建一個(gè)游標(biāo)對(duì)象 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ù)庫(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 查詢
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 查詢
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)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI