MySQL导出命令行有哪些常用命令?

MySQL 提供了多种命令行工具用于数据导出,其中最常用的是 mysqldump,它功能强大且灵活,能够导出数据库结构、数据或两者,并支持多种格式。SELECT ... INTO OUTFILE 命令也可用于将查询结果直接导出到文件,适用于特定场景的数据导出需求,以下是关于 MySQL 命令行导出的详细说明。

mysql导出命令行
(图片来源网络,侵删)

使用 mysqldump 导出数据

mysqldump 是 MySQL 自带的逻辑备份工具,通过它可以导出单个表、整个数据库或多个数据库,其基本语法为 mysqldump -u用户名 -p密码 [选项] 数据库名 [表名] > 导出文件路径

导出整个数据库

若需导出指定数据库的所有表结构和数据,可使用以下命令:

mysqldump -u root -p mydatabase > mydatabase_backup.sql

执行后会提示输入密码,导出结果包含创建数据库、表结构及插入数据的 SQL 语句。

导出特定表

若仅需导出数据库中的部分表,可在数据库名后添加表名,多个表用空格分隔:

mysql导出命令行
(图片来源网络,侵删)
mysqldump -u root -p mydatabase table1 table2 > tables_backup.sql

仅导出表结构(不包含数据)

添加 --no-data 选项可跳过数据导出,仅保留表结构:

mysqldump -u root -p --no-data mydatabase > mydatabase_structure.sql

仅导出数据(不包含表结构)

使用 --no-create-info 选项可跳过 CREATE TABLE 语句,仅导出数据:

mysqldump -u root -p --no-create-info mydatabase > mydatabase_data.sql

导出多个数据库

通过 --databases 选项可同时导出多个数据库,数据库名之间用空格分隔:

mysqldump -u root -p --databases db1 db2 > multi_dbs_backup.sql

导出所有数据库

添加 --all-databases 选项可导出 MySQL 服务器中的所有数据库:

mysql导出命令行
(图片来源网络,侵删)
mysqldump -u root -p --all-databases > all_dbs_backup.sql

导出为 CSV 或其他格式

mysqldump 默认导出为 SQL 格式,若需导出为 CSV,可结合 SELECT ... INTO OUTFILE 命令(需确保 MySQL 有文件写入权限):

SELECT * FROM mydatabase.table1 INTO OUTFILE '/tmp/table1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

导出的 CSV 文件默认存储在 MySQL 服务器的文件系统中,需通过 scpmysql -e 命令下载到本地。

常用 mysqldump 选项说明

选项说明
-u指定 MySQL 用户名,如 -u root
-p提示输入密码,若密码后直接跟字符串(无空格),如 -p123456,但推荐交互式输入
-h指定 MySQL 服务器主机名,默认为 localhost
-P指定端口号,默认为 3306
--compact简化输出,去除注释和空行
--single-transaction适用于 InnoDB 表,导出时开启事务,避免锁表
--routines包含存储过程和函数
--triggers包含触发器
--hex-blob使用十六进制格式导出二进制字段

导出后的数据恢复

导出的 SQL 文件可通过 mysql 命令恢复:

mysql -u root -p mydatabase < mydatabase_backup.sql

相关问答 FAQs

问题 1:导出大表时如何避免内存溢出?
解答:使用 mysqldump--single-transaction 选项(适用于 InnoDB 表)可避免锁表和内存问题,同时通过 --quick 选项逐行读取数据,减少内存占用。

mysqldump -u root -p --single-transaction --quick mydatabase big_table > big_table_backup.sql

问题 2:如何导出数据并压缩以节省空间?
解答:可通过管道将 mysqldump 的输出直接传递给压缩工具(如 gzip),实现边导出边压缩。

mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz

恢复时需先解压:

gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/367378.html<

(0)
运维的头像运维
上一篇2025-09-27 02:55
下一篇 2025-09-27 03:00

相关推荐

  • Linux MySQL退出命令是哪个?

    在Linux操作系统中,与MySQL数据库的交互通常通过命令行客户端完成,而退出MySQL命令行环境是日常操作中的基础环节,掌握正确的退出命令不仅能提升操作效率,还能避免因异常退出导致的数据或连接问题,本文将详细解析Linux环境下MySQL的退出命令,涵盖多种退出方式、适用场景及注意事项,并通过表格对比不同命……

    2025-11-20
    0
  • Windows下重启MySQL命令是什么?

    在Windows操作系统中重启MySQL服务是数据库管理和维护中常见的操作,无论是配置修改后使生效、解决服务异常还是进行系统维护,掌握正确的重启方法都至关重要,Windows环境下重启MySQL服务主要有多种途径,包括通过命令提示符(CMD)或PowerShell执行命令、通过服务管理器图形界面操作,以及借助第……

    2025-11-19
    0
  • Centos MySQL启动命令是什么?

    在CentOS系统中,MySQL的启动命令是数据库管理员日常操作中常用的基础指令,掌握其正确使用方法及相关的管理技巧对于系统维护至关重要,CentOS系统下MySQL的安装方式不同(如通过yum源安装、二进制包安装或源码编译安装),其服务名称和启动命令可能存在细微差异,但核心逻辑一致,以下将详细说明不同场景下的……

    2025-11-17
    0
  • Centos下MySQL如何用命令导入SQL文件?

    在CentOS系统下使用MySQL处理SQL文件是数据库管理中的常见操作,涉及命令行工具的使用、权限配置及错误排查等多个环节,以下是详细操作步骤及注意事项,帮助用户高效完成SQL文件的导入导出与管理,环境准备与安装在CentOS系统中,首先需确保MySQL已正确安装,若未安装,可通过以下命令进行:sudo yu……

    2025-11-16
    0
  • 网站建数据库,该选哪种类型?

    网站如何建数据库是开发过程中至关重要的一环,数据库的设计与搭建直接影响网站的数据存储、查询效率和整体性能,以下是详细的步骤和注意事项,帮助从零开始完成网站数据库的构建,明确数据库需求是基础,需要分析网站的功能模块,确定需要存储哪些数据,例如用户信息(用户名、密码、邮箱)、商品信息(名称、价格、库存)、文章内容……

    2025-11-15
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注