如何使用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使用过程中的bug

    总结Python使用过程中的bug

    今天给大家带来的是关于Python的相关知识,文章围绕着Python使用过程中的bug展开,文中有非常详细的介绍,需要的朋友可以参考下
    2021-06-06
  • Django框架HttpResponse对象用法实例分析

    Django框架HttpResponse对象用法实例分析

    这篇文章主要介绍了Django框架HttpResponse对象用法,结合实例形式分析了Django框架HttpResponse对象基本原理、功能及响应请求的相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • python删除文件示例分享

    python删除文件示例分享

    这篇文章主要介绍了删除文件夹下所有文件和子文件夹的示例,大家参考使用吧
    2014-01-01
  • 详解Pytorch 使用Pytorch拟合多项式(多项式回归)

    详解Pytorch 使用Pytorch拟合多项式(多项式回归)

    这篇文章主要介绍了详解Pytorch 使用Pytorch拟合多项式(多项式回归),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • GitHub AI编程工具copilot在Pycharm的应用

    GitHub AI编程工具copilot在Pycharm的应用

    最近听说github出了一种最新的插件叫做copilot,这篇文章主要给大家介绍了关于GitHub AI编程工具copilot在Pycharm的应用,目前感觉确实不错,建议大家也去使用,需要的朋友可以参考下
    2022-04-04
  • 使用python实现对元素的长截图功能

    使用python实现对元素的长截图功能

    这篇文章主要介绍了用python实现对元素的长截图功能,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-11-11
  • Python的地形三维可视化Matplotlib和gdal使用实例

    Python的地形三维可视化Matplotlib和gdal使用实例

    这篇文章主要介绍了Python的地形三维可视化Matplotlib和gdal使用实例,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • 老生常谈Python基础之字符编码

    老生常谈Python基础之字符编码

    下面小编就为大家带来一篇老生常谈Python基础之字符编码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Python机器学习之基础概述

    Python机器学习之基础概述

    今天带大家回顾python机器学习的相关知识,文中非常详细的介绍了Python机器学习的基础概述,算法分类及研究内容,需要的朋友可以参考下
    2021-05-05
  • Python中的 any() 函数和 all() 函数

    Python中的 any() 函数和 all() 函数

    这篇文章主要介绍了Python中的 any() 函数和 all() 函数,文章基于Python的相关资料展开对 any 和 all() 函数的语法详细内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04

最新评论