Python鏈接MySQL數據庫的多種方式

上篇文章分享了windows下載mysql5.7壓縮包配置安裝mysqlhtml

後續能夠選擇python

①在本地建立一個數據庫,使用navicat工具導出遠程測試服務器的數據庫至本地,用於學習操做,且不影響測試服務器的數據mysql

②鏈接測試服務器的數據庫帳號和密碼,在測試服務器上操做,內部測試服務器的數據庫帳號和密碼在分配時會給不一樣帳號作權限限制,如不一樣帳號容許登陸的方式、開放的數據庫範圍、帳號可讀寫操做的權限都會不同,若出現一直使用代碼登陸不上遠程數據庫服務器,應檢查下帳號是否具備權限,可詢問負責管理測試服務器數據庫管理員。(本人親測不一樣帳號相同代碼,一個能操做成功一個報錯鏈接不上數據庫;另,在navicat工具或pycharm ide內配置可視化數據庫時帳號登陸須要使用ssh通道認證,相同的帳號用python代碼鏈接卻徹底不須要ssh遠程鏈接的代碼,提供帳號和密碼就能登陸成功。數據庫權限限制相關的着實深!)sql

本次代碼實現鏈接遠程服務器數據庫

因爲MySQL服務器以獨立的進程運行,並經過網絡對外服務,因此,須要支持Python的MySQL驅動來鏈接到MySQL服務器。windows

目前,MySQL驅動有幾種:服務器

mysql-connector-python:是MySQL官方的純Python驅動;網絡

MySQL-python:是封裝了MySQL C驅動的Python驅動。ssh

安裝MySQL驅動:ide

  • pip install mysql-connector-python

測試是否安裝成功,測試python下是否可成功導入mysql.connector便可(import mysql.connector)

  • pip install MySQL-python (不支持python3)

測試是否安裝成功,測試python下是否可成功導入MySQLdb便可(import MySQLdb)

  • pip install mysqlclient (mysqlclient 徹底兼容MySQLdb,同時支持python3)

測試是否安裝成功,測試python下是否可成功導入MySQLdb便可(import MySQLdb)

  • pip install PyMySQL

測試是否安裝成功,測試python下是否可成功導入pymysql便可(import pymysql)

python鏈接MySQL數據庫的多種方式(方式一)

# 方式一:
import mysql.connector

# 打開數據庫鏈接
db = mysql.connector.connect(host='*.*.*.*',
                             port=3306,
                             user='*',      # 數據庫IP、用戶名和密碼
                             passwd='*',
                             charset = 'utf8')       

# 使用 cursor() 方法建立一個遊標對象 cursor
cursor = db.cursor()

# 使用 execute()  方法執行 SQL 查詢
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")

# 使用 fetchone() 方法獲取單條數據;使用 fetchall() 方法獲取全部數據
data = cursor.fetchall()

for item in data:
     print(item[0])

# 關閉數據庫鏈接
db.close()

python鏈接MySQL數據庫的多種方式(方式二)

# 方式二:
import MySQLdb

# 打開數據庫鏈接
conn = MySQLdb.connect(host='*.*.*.*',
                       port=3306,
                       user='*',
                       passwd='*',
                       charset = 'utf8'
                       )
                       
# 使用 cursor() 方法建立一個遊標對象 cursor
cursor = conn.cursor()

# 使用 execute()  方法執行 SQL 查詢
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
cursor.execute("select * from tables_name")

# 使用 fetchone() 方法獲取單條數據;使用 fetchall() 方法獲取全部數據
data = cursor.fetchall()
for item in data:
    print(item)

# 關閉數據庫鏈接
cursor.close()

python鏈接MySQL數據庫的多種方式(方式三)

# 方式三:
import pymysql

# 打開數據庫鏈接
conn = pymysql.connect(host='*.*.*.*',
                       port=3306,
                       user='*', 
                       passwd='*', 
                       charset = 'utf8'
                       )
               
# 使用 cursor() 方法建立一個遊標對象 cursor                       
cursor = conn.cursor()

# 使用 execute()  方法執行 SQL 查詢
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
cursor.execute("select * from tables_name")

# 使用 fetchone() 方法獲取單條數據;使用 fetchall() 方法獲取全部數據
data = cursor.fetchall()
for item in data:
    print(item[0])
    
# 關閉數據庫鏈接
cursor.close()

  

原文出處:https://www.cnblogs.com/kristin/p/10718048.html

相關文章
相關標籤/搜索