如何使用python转移mysql数据库中的全部数据

 更新时间:2024年11月05日 10:52:10   作者:仙草哥哥  
这篇文章主要为大家详细介绍了如何使用python转移mysql数据库中的全部数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解下

数据库到期

今天,有人告诉我,“马上就要双十一了,我遇到了一个问题。”

我很好奇,“是什么问题呢?关于双十一的商品折扣吗?”

他说,“不,是我之前双十一的时候,购买的mysql数据库到期了,但是因为价格较高,我不打算继续续费了,现在希望将其中的数据转移出去,该怎么做呢?“

确实,虽然专业的数据库服务非常好,但是价格上还是比较贵的,每年可能需要花费数百元,如果需求量不大,要求不高的情况下,可能确实不如自己安装一个比较节省。

那么,将数据库中的数据全部迁移出来,通常不是什么困难(尤其是在数据量并非巨大的情况下),下面,就介绍几种方法,可以有效的帮助数据的保存与转移。

常规保存

mysqldump

使用mysqldump工具可以将数据库导出为sql文件

mysqldump -u 用户名 -p -B 数据库名 > 导出文件.sql
 
# 可选选项:--set-gtid-purged=OFF 避免备份无关的全局事务标识符
# 可选选项:--single-transaction 保证数据一致性
mysqldump -uroot -p --set-gtid-purged=OFF --single-transaction -B 数据库名 > 导出文件.sql

在需要恢复的地方执行

mysql -u 用户名 -p < 导出文件.sql

注意:如果使用mysqldump导出大量数据会耗时较长,因此更适合对中小规模的数据库使用。

将表数据写入文件

查询某表的所有数据,并将其写入到文件中

mysql -u 用户名 -p -e "SELECT * FROM 数据库名.表名" > "文件名.txt"

使用python保存

python直接转存

对于mysql数据库,可以使用pymysql查询出其中的所有数据,然后插入到目标数据库。

import pymysql
 
# 连接源数据库
source_conn = pymysql.connect(
    host="源数据库地址",
    user="用户名",
    password="密码",
    database="源数据库名"
)
source_cursor = source_conn.cursor()
 
# 连接目标数据库
target_conn = pymysql.connect(
    host="目标数据库地址",
    user="用户名",
    password="密码",
    database="目标数据库名"
)
target_cursor = target_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()
 
    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文件

将每个数据表,分别存到csv文件中。注意,该方法目前只保存了数据,但是没有保存数据表结构与创建语句。

import pymysql
import csv
 
 
source_conn = pymysql.connect(
    host="源数据库地址",
    user="用户名",
    password="密码",
    database="源数据库名"
)
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()

到此这篇关于如何使用python转移mysql数据库中的全部数据的文章就介绍到这了,更多相关python转移mysql数据库数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中的descriptor描述器简明使用指南

    Python中的descriptor描述器简明使用指南

    descriptor在Python中主要被用来定义方法和属性,使用起来相当具有技巧性,这里我们先从基础的开始,整理一份Python中的descriptor描述器简明使用指南
    2016-06-06
  • Python使用Tkinter打造一个完整的桌面应用

    Python使用Tkinter打造一个完整的桌面应用

    在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可使用,这种“开箱即用”的特性让它成为新手入门GUI开发的首选,本文将通过构建一个完整的记事本应用,带你领略Tkinter的实用魅力
    2025-06-06
  • python flask快速搭建一个Web应用的完整步骤

    python flask快速搭建一个Web应用的完整步骤

    这篇文章主要介绍了python flask快速搭建一个Web应用的完整步骤,Flask是一个轻量级的Python Web框架,适合快速开发Web应用和API,它具有简洁的API、灵活性高和丰富的扩展,文中给出了详细的代码示例,需要的朋友可以参考下
    2025-05-05
  • Python中让MySQL查询结果返回字典类型的方法

    Python中让MySQL查询结果返回字典类型的方法

    这篇文章主要介绍了Python中让MySQL查询结果返回字典类型的方法,默认情况下Mysql返回的是元组类型,本文实现了返回字典类型,需要的朋友可以参考下
    2014-08-08
  • Python实现中文数字与阿拉伯数字映射生成器(支持0-9999)的完整代码

    Python实现中文数字与阿拉伯数字映射生成器(支持0-9999)的完整代码

    在中文文本处理和自然语言处理(NLP)应用中,经常需要将中文数字转换为阿拉伯数字,本文将介绍如何使用Python根据用户从控制台输入的数字范围,生成相应的中文数字到阿拉伯数字的映射字典,并将结果保存为JSON文件,需要的朋友可以参考下
    2025-07-07
  • 详解用python -m http.server搭一个简易的本地局域网

    详解用python -m http.server搭一个简易的本地局域网

    这篇文章主要介绍了详解用python -m http.server搭一个简易的本地局域网,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python函数的嵌套详解

    Python函数的嵌套详解

    这篇文章主要为大家介绍了Python函数的嵌套,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Python调用百度OCR实现图片文字识别的示例代码

    Python调用百度OCR实现图片文字识别的示例代码

    这篇文章主要介绍了Python调用百度OCR实现图片文字识别的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • python字符串拼接+和join的区别详解

    python字符串拼接+和join的区别详解

    这篇文章主要给大家介绍了关于python字符串拼接+和join的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python获取版本信息的方法与第三方库总结

    python获取版本信息的方法与第三方库总结

    这篇文章主要为大家详细介绍了python获取版本信息的方法与第三方库,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2025-11-11

最新评论