欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用python轉(zhuǎn)移mysql數(shù)據(jù)庫中的全部數(shù)據(jù)

 更新時間:2024年11月05日 10:52:10   作者:仙草哥哥  
這篇文章主要為大家詳細介紹了如何使用python轉(zhuǎn)移mysql數(shù)據(jù)庫中的全部數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解下

數(shù)據(jù)庫到期

今天,有人告訴我,“馬上就要雙十一了,我遇到了一個問題。”

我很好奇,“是什么問題呢?關(guān)于雙十一的商品折扣嗎?”

他說,“不,是我之前雙十一的時候,購買的mysql數(shù)據(jù)庫到期了,但是因為價格較高,我不打算繼續(xù)續(xù)費了,現(xiàn)在希望將其中的數(shù)據(jù)轉(zhuǎn)移出去,該怎么做呢?“

確實,雖然專業(yè)的數(shù)據(jù)庫服務(wù)非常好,但是價格上還是比較貴的,每年可能需要花費數(shù)百元,如果需求量不大,要求不高的情況下,可能確實不如自己安裝一個比較節(jié)省。

那么,將數(shù)據(jù)庫中的數(shù)據(jù)全部遷移出來,通常不是什么困難(尤其是在數(shù)據(jù)量并非巨大的情況下),下面,就介紹幾種方法,可以有效的幫助數(shù)據(jù)的保存與轉(zhuǎn)移。

常規(guī)保存

mysqldump

使用mysqldump工具可以將數(shù)據(jù)庫導(dǎo)出為sql文件

mysqldump -u 用戶名 -p -B 數(shù)據(jù)庫名 > 導(dǎo)出文件.sql
 
# 可選選項:--set-gtid-purged=OFF 避免備份無關(guān)的全局事務(wù)標識符
# 可選選項:--single-transaction 保證數(shù)據(jù)一致性
mysqldump -uroot -p --set-gtid-purged=OFF --single-transaction -B 數(shù)據(jù)庫名 > 導(dǎo)出文件.sql

在需要恢復(fù)的地方執(zhí)行

mysql -u 用戶名 -p < 導(dǎo)出文件.sql

注意:如果使用mysqldump導(dǎo)出大量數(shù)據(jù)會耗時較長,因此更適合對中小規(guī)模的數(shù)據(jù)庫使用。

將表數(shù)據(jù)寫入文件

查詢某表的所有數(shù)據(jù),并將其寫入到文件中

mysql -u 用戶名 -p -e "SELECT * FROM 數(shù)據(jù)庫名.表名" > "文件名.txt"

使用python保存

python直接轉(zhuǎn)存

對于mysql數(shù)據(jù)庫,可以使用pymysql查詢出其中的所有數(shù)據(jù),然后插入到目標數(shù)據(jù)庫。

import pymysql
 
# 連接源數(shù)據(jù)庫
source_conn = pymysql.connect(
    host="源數(shù)據(jù)庫地址",
    user="用戶名",
    password="密碼",
    database="源數(shù)據(jù)庫名"
)
source_cursor = source_conn.cursor()
 
# 連接目標數(shù)據(jù)庫
target_conn = pymysql.connect(
    host="目標數(shù)據(jù)庫地址",
    user="用戶名",
    password="密碼",
    database="目標數(shù)據(jù)庫名"
)
target_cursor = target_conn.cursor()
 
# 查詢源數(shù)據(jù)庫中的所有表
source_cursor.execute("SHOW TABLES")
tables = source_cursor.fetchall()
 
for table in tables:
    table_name = table[0]
    source_cursor.execute(f"SELECT * FROM {table_name}")
    rows = source_cursor.fetchall()
 
    source_cursor.execute(f"SHOW CREATE TABLE {table_name}")
    create_table_sql = source_cursor.fetchone()[1]
 
    target_cursor.execute(f"DROP TABLE IF EXISTS {table_name}")
    target_cursor.execute(create_table_sql)
 
    for row in rows:
        placeholders = ", ".join(["%s"] * len(row))
        insert_sql = f"INSERT INTO {table_name} VALUES ({placeholders})"
        target_cursor.execute(insert_sql, row)
 
    target_conn.commit()
 
 
source_cursor.close()
source_conn.close()
target_cursor.close()
target_conn.close()

python保存到csv文件

將每個數(shù)據(jù)表,分別存到csv文件中。注意,該方法目前只保存了數(shù)據(jù),但是沒有保存數(shù)據(jù)表結(jié)構(gòu)與創(chuàng)建語句。

import pymysql
import csv
 
 
source_conn = pymysql.connect(
    host="源數(shù)據(jù)庫地址",
    user="用戶名",
    password="密碼",
    database="源數(shù)據(jù)庫名"
)
source_cursor = source_conn.cursor()
 
source_cursor.execute("SHOW TABLES")
tables = source_cursor.fetchall()
 
for table in tables:
    table_name = table[0]
    source_cursor.execute(f"SELECT * FROM {table_name}")
    rows = source_cursor.fetchall()
 
    columns = [desc[0] for desc in source_cursor.description]
 
    with open(f"{table_name}.csv", "w", newline="", encoding="utf-8") as file:
        writer = csv.writer(file)
        writer.writerow(columns)
        writer.writerows(rows) 
 
source_cursor.close()
source_conn.close()

到此這篇關(guān)于如何使用python轉(zhuǎn)移mysql數(shù)據(jù)庫中的全部數(shù)據(jù)的文章就介紹到這了,更多相關(guān)python轉(zhuǎn)移mysql數(shù)據(jù)庫數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實戰(zhàn)小游戲飛機大戰(zhàn)詳解

    Python實戰(zhàn)小游戲飛機大戰(zhàn)詳解

    飛機大戰(zhàn)想必是很多人童年時期的經(jīng)典游戲,我們依舊能記得抱個老人機娛樂的場景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個簡單的飛機大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • python使用writerows寫csv文件產(chǎn)生多余空行的處理方法

    python使用writerows寫csv文件產(chǎn)生多余空行的處理方法

    這篇文章主要介紹了python使用writerows寫csv文件產(chǎn)生多余空行的處理方法,需要的朋友可以參考下
    2019-08-08
  • 使用Python可視化展示排序算法

    使用Python可視化展示排序算法

    這篇文章主要介紹了使用Python可視化展示排序算法,讓我們創(chuàng)建一個名為algorithm?.py的文件,在這個文件中,我們將用python編寫所有的排序算法,需要的朋友可以參考下
    2024-11-11
  • python爬蟲beautiful?soup的使用方式

    python爬蟲beautiful?soup的使用方式

    這篇文章主要介紹了python爬蟲beautiful?soup的使用方式,Beautiful?Soup依據(jù)給定的解釋器來解析html文檔,其依據(jù)html中標簽把html文檔在內(nèi)存中轉(zhuǎn)化為類似于二叉樹的數(shù)據(jù)結(jié)構(gòu),并通過實現(xiàn)的查詢方法來查詢二叉樹以得到我們想要的爬蟲數(shù)據(jù)
    2022-08-08
  • Python創(chuàng)建數(shù)字列表的示例

    Python創(chuàng)建數(shù)字列表的示例

    今天小編就為大家分享一篇Python創(chuàng)建數(shù)字列表的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python+Pytorch實戰(zhàn)之彩色圖片識別

    Python+Pytorch實戰(zhàn)之彩色圖片識別

    這篇文章主要為大家詳細介紹了如何利用Python+Pytorch實現(xiàn)彩色圖片識別功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-09-09
  • Django中的forms組件實例詳解

    Django中的forms組件實例詳解

    這篇文章主要介紹了Django的forms組件,本文通過實例代碼介紹了Django的forms組件,需要的朋友可以參考下
    2018-11-11
  • Python使用functools實現(xiàn)注解同步方法

    Python使用functools實現(xiàn)注解同步方法

    這篇文章主要介紹了Python使用functools實現(xiàn)注解同步方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Pandas實現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式

    Pandas實現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式

    pandas的pivot_table()函數(shù)非常強大,主要用于創(chuàng)建數(shù)據(jù)透視表,重要參數(shù)包括index、values、columns和aggfunc,index用于設(shè)置行索引,類似于SQL中的group by,values用于進行聚合計算的數(shù)據(jù)選擇,columns參數(shù)可設(shè)置列層次,非必須
    2024-09-09
  • python正則匹配查詢辦理進度示例分享

    python正則匹配查詢辦理進度示例分享

    分享原創(chuàng)的一段查詢通行證辦理進度查詢的python 3.3代碼,利用socket請求相關(guān)網(wǎng)站,獲得結(jié)果后利用正則找出辦理進度
    2013-12-12

最新評論