【mysql】导出导入mysql表结构或者数据

使用 mysqldump 工具可以方便地导出 MySQL 数据库中的表数据。mysqldump 是一个命令行工具,通常随 MySQL 服务器一起安装。以下是如何使用 mysqldump 导出表数据的步骤和示例。

基本语法
复制代码
mysqldump -h[ip地址] -P[端口] -u [用户名] -p [数据库名] [表名] > [输出文件名].sql
示例

假设您有一个名为 mydatabase 的数据库,其中有一个名为 user_manage 的表,您想将该表的数据导出到一个名为 user_manage_backup.sql 的文件中。

  1. 打开命令行终端(在 Windows 上是命令提示符或 PowerShell,在 macOS 或 Linux 上是终端)。

  2. 运行 mysqldump 命令

    mysqldump -u your_username -p mydatabase user_manage > user_manage_backup.sql

  • -u your_username:指定您的 MySQL 用户名。
  • -p:提示输入密码。
  • mydatabase:要导出数据的数据库名称。
  • user_manage:要导出数据的表名称。
  • > user_manage_backup.sql:将导出的数据保存到 user_manage_backup.sql 文件中。
其他常用选项
导出数据包含中文

在windows cmd窗口,加参数--default-character-set UTF8

复制代码
mysqldump -h 192.168.10.10 -P3306 -uroot -proot --default-character-set UTF8 --databases  mydatabase > mydatabase_backup.sql
只导出数据(不包含表结构)

如果您只想导出表中的数据而不包含表结构,可以使用 --no-create-info 选项:

复制代码
mysqldump -u your_username -p --no-create-info mydatabase user_manage > user_manage_data_only.sql
只导出表结构(不包含数据)

如果您只想导出表结构而不包含数据,可以使用 --no-data 选项:

复制代码
mysqldump -u your_username -p --no-data mydatabase user_manage > user_manage_structure_only.sql
添加锁以确保一致性

对于大型数据库,您可以使用 --single-transaction--quick 选项来避免长时间锁定表,并确保事务的一致性:

复制代码
mysqldump -u your_username -p --single-transaction --quick mydatabase user_manage > user_manage_backup.sql
压缩导出文件

为了节省磁盘空间,您可以将导出的文件压缩为 .gz 文件:

复制代码
mysqldump -u your_username -p mydatabase user_manage | gzip > user_manage_backup.sql.gz
导出多个表

如果您想导出多个表,可以在命令中列出所有表名:

复制代码
mysqldump -u your_username -p mydatabase table1 table2 > multiple_tables_backup.sql
导出整个数据库

如果您想导出整个数据库的所有表和数据,可以省略表名:

复制代码
mysqldump -u your_username -p mydatabase > mydatabase_backup.sql

使用 mysqldump 导出的 SQL 文件可以通过 MySQL 的命令行工具或通过其他客户端工具(如 phpMyAdmin 或 MySQL Workbench)导入到数据库中。以下是通过命令行工具导入数据的步骤。

导入 SQL 文件

使用 mysql 命令行工具导入 SQL 文件。以下是几种常见的方法:

方法 1: 直接使用 mysql 命令
复制代码
mysql -u your_username -p target_database < tenant_manage_backup.sql
  • -u your_username:指定您的 MySQL 用户名。
  • -p:提示输入密码。
  • target_database:要导入数据的目标数据库名称。
  • < tenant_manage_backup.sql:从 tenant_manage_backup.sql 文件读取并执行 SQL 语句。
方法 2: 使用 source 命令

首先,进入 MySQL 命令行界面:

复制代码
mysql -u your_username -p

然后,在 MySQL 命令行中选择目标数据库并执行 source 命令:

复制代码
USE target_database;
SOURCE /path/to/tenant_manage_backup.sql;
  • USE target_database;:选择目标数据库。
  • SOURCE /path/to/tenant_manage_backup.sql;:执行 SQL 文件中的所有命令。请确保路径是正确的。
4. 验证导入

导入完成后,您可以验证数据是否正确导入:

复制代码
mysql -u your_username -p target_database -e "SELECT * FROM tenant_manage LIMIT 10;"
注意事项
  • 数据库大小 :对于非常大的数据库,建议使用 --single-transaction--quick 选项以减少锁定时间。
  • 数据一致性:如果需要保证数据一致性,可以在导出时锁定表,但这可能会影响数据库性能。
相关推荐
Lyyaoo.1 小时前
Spring Boot Validation 声明式参数校验
spring boot·后端·mysql
oradh3 小时前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
南城以南溫暖如初1473 小时前
外卖CPS实战指南:从技术选型到运营落地全流程解析
java·spring boot·mysql·架构·vue
ltl3 小时前
RocksDB 并发 Compaction 与 Rate Limiter
数据库
闻道且行之5 小时前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
夏炳辉.6 小时前
PostgreSQL 高可用集群核心配置参数全解:从原生流复制到 Patroni 企业级方案
数据库·postgresql
努力的小雨6 小时前
KES 开启 SSL 前,证书、端口和客户端要一起验
数据库
DevOps老兵7 小时前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
这个DBA有点耶7 小时前
当数据库从“存储”走向“决策”:金仓数据库的融合架构之路
数据库·架构·aigc
smilejingwei7 小时前
Trae+SQLazy 实践 SQL 国产化移植:Oracle => 达梦
数据库·sql·oracle