0

0

mysqldump用法数据库导出_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:29:20

|

1057人浏览过

|

来源于php中文网

原创

mysqldump

bitsCN.com

mysqldump用法数据库导出

 

m18麦考林整站 for Ecshop
m18麦考林整站 for Ecshop

m18麦考林整站 for Ecshop v2.7.3 安装方法: 1,解压rar包上传到网站根目录 2,导入sql数据库文件,到你的数据库里,可以phpmyadmin等软件 3,修改data里config.php里面的数据库 用户名 密码等信息 为你自己的数据库信息 4,安装完毕之后的后台用户名密码为: 后台地址:域名/admin 用户名:admin 密码:admin123 模板使用教程: htt

下载

mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。

 

如果你在服务器上进行备份,并且表均为MyISAM表,应考虑使用mysqlhotcopy,因为可以更快地进行备份和恢复。参见8.9节,“mysqlhotcopy:数据库备份程序”。

 

有3种方式来调用mysqldump:

C代码  

shell> mysqldump [options] db_name [tables]  

shell> mysqldump [options] ---database DB1 [DB2 DB3...]  

shell> mysqldump [options] --all--database  

 

如果没有指定任何表或使用了---database或--all--database选项,则转储整个数据库。

 

要想获得你的版本的mysqldump支持的选项,执行mysqldump ---help。

 

如果运行mysqldump没有--quick或--opt选项,mysqldump在转储结果前将整个结果集装入内存。如果转储大数据库可能会出现问题。该选项默认启用,但可以用--skip-opt禁用。

 

如果使用最新版本的mysqldump程序生成一个转储重装到很旧版本的MySQL服务器中,不应使用--opt或-e选项。

 

mysqldump支持下面的选项:

 

---help,-?

    显示帮助消息并退出。

 

--add-drop--database

 

    在每个CREATE DATABASE语句前添加DROP DATABASE语句。

 

--add-drop-tables

 

    在每个CREATE TABLE语句前添加DROP TABLE语句。

 

--add-locking

 

    用LOCK TABLES和UNLOCK TABLES语句引用每个表转储。重载转储文件时插入得更快。参见7.2.16节,“INSERT语句的速度”。

 

--all--database,-A

 

    转储所有数据库中的所有表。与使用---database选项相同,在命令行中命名所有数据库。

 

--allow-keywords

 

    允许创建关键字列名。应在每个列名前面加上表名前缀。

 

---comments[={0|1}]

 

    如果设置为 0,禁止转储文件中的其它信息,例如程序版本、服务器版本和主机。--skip—comments与---comments=0的结果相同。 默认值为1,即包括额外信息。

 

--compact

 

    产生少量输出。该选项禁用注释并启用--skip-add-drop-tables、--no-set-names、--skip-disable-keys和--skip-add-locking选项。

 

--compatible=name

 

    产生与其它数据库系统或旧的MySQL服务器更兼容的输出。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options或者no_field_options。要使用几个值,用逗号将它们隔开。这些值与设置服务器SQL模式的相应选项有相同的含义。参见5.3.2节,“SQL服务器模式”。

 

    该选项不能保证同其它服务器之间的兼容性。它只启用那些目前能够使转储输出更兼容的SQL模式值。例如,--compatible=oracle 不映射Oracle类型或使用Oracle注释语法的数据类型。

 

--complete-insert,-c

 

    使用包括列名的完整的INSERT语句。

 

--compress,-C

 

    压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩)。

 

--create-option

 

    在CREATE TABLE语句中包括所有MySQL表选项。

 

---database,-B

 

    转储几个数据库。通常情况,mysqldump将命令行中的第1个名字参量看作数据库名,后面的名看作表名。使用该选项,它将所有名字参量看作数据库名。CREATE DATABASE IF NOT EXISTS db_name和USE db_name语句包含在每个新数据库前的输出中。

 

---debug[=debug_options],-# [debug_options]

 

    写调试日志。debug_options字符串通常为'd:t:o,file_name'。

 

--default-character-set=charset

 

    使用charsetas默认字符集。参见5.10.1节,“数据和排序用字符集”。如果没有指定,mysqldump使用utf8。

 

--delayed-insert

 

    使用INSERT DELAYED语句插入行。

 

--delete-master-logs

 

    在主复制服务器上,完成转储操作后删除二进制日志。该选项自动启用--master-data。

 

--disable-keys,-K

 

    对于每个表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用INSERT语句。这样可以更快地装载转储文件,因为在插入所有行后创建索引。该选项只适合MyISAM表。

 

--extended-insert,-e

 

    使用包括几个VALUES列表的多行INSERT语法。这样使转储文件更小,重载文件时可以加速插入。

 

--fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...,--行-terminated-by=...

 

    这些选项结合-T选项使用,与LOAD DATA INFILE的相应子句有相同的含义。参见13.2.5节,“LOAD DATA INFILE语法”。

 

--first-slave,-x

 

    不赞成使用,现在重新命名为--lock-all-tables。

 

--flush-logs,-F

 

    开始转储前刷新MySQL服务器日志文件。该选项要求RELOAD权限。请注意如果结合--all--database(或-A)选项使用该选项,根据每个转储的数据库刷新日志。例外情况是当使用--lock-all-tables或--master-data的时候:在这种情况下,日志只刷新一次,在所有 表被锁定后刷新。如果你想要同时转储和刷新日志,应使用--flush-logs连同--lock-all-tables或--master-data。

 

--force,-f

 

    在表转储过程中,即使出现SQL错误也继续。

 

--host=host_name,-h host_name

 

    从给定主机的MySQL服务器转储数据。默认主机是localhost。

 

--hex-blob

 

    使用十六进制符号转储二进制字符串列(例如,'abc' 变为0x616263)。影响到的列有BINARY、VARBINARY、BLOB。

 

--lock-all-tables,-x

 

    所有数据库中的所有表加锁。在整体转储过程中通过全局读锁定来实现。该选项自动关闭--single-transaction和--lock-tables。

 

--lock-tables,-l

 

    开始转储前锁定所有表。用READ LOCAL锁定表以允许并行插入MyISAM表。对于事务表例如InnoDB和BDB,--single-transaction是一个更好的选项,因为它不根本需要锁定表。

    请注意当转储多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证转储文件中的表在数据库之间的逻辑一致性。不同数据库表的转储状态可以完全不同。

 

--master-data[=value]

 

    该选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入CHANGE MASTER语句形式的转储输出,如果你使用该SQL转储主服务器以设置从服务器,从服务器从主服务器二进制日志的正确位置开始。如果选项值等于2,CHANGE MASTER语句被写成SQL注释。如果value被省略,这是默认动作。

 

--master-data

 

    选项启用--lock-all-tables,除非还指定--single-transaction(在这种情况下,只在刚开始转储时短时间获得全局读锁定。又见--single-transaction。在任何一种情况下,日志相关动作发生在转储时。该选项自动关闭--lock-tables。

 

--no-create-db,-n

 

    该选项禁用CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name语句,如果给出---database或--all--database选项,则包含到输出中。

 

--no-create-info,-t

 

    不写重新创建每个转储表的CREATE TABLE语句。

 

--no-data,-d

 

    不写表的任何行信息。如果你只想转储表的结构这很有用。

 

--opt

 

    该选项是速记;等同于指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以给出很快的转储操作并产生一个可以很快装入MySQL服务器的转储文件。该选项默认开启,但可以用--skip-opt禁用。要想只禁用确信用-opt启用的选项,使用--skip形式;例如,--skip-add-drop-tables或--skip-quick。

 

--password[=password],-p[password]

 

    连接服务器时使用的密码。如果你使用短选项形式(-p),不能在选项和密码之间有一个空格。如果在命令行中,忽略了--password或-p选项后面的 密码值,将提示你输入一个。

 

--port=port_num,-P port_num

 

    用于连接的TCP/IP端口号。

 

--protocol={TCP | SOCKET | PIPE | MEMORY}

 

    使用的连接协议。

 

--quick,-q

 

    该选项用于转储大的表。它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行并在输出前将它缓存到内存中。

 

--quote-names,-Q

 

    用‘`’字符引用数据库、表和列名。如果服务器SQL模式包括ANSI_QUOTES选项,用‘"’字符引用名。默认启用该选项。可以用--skip-quote-names禁用,但该选项应跟在其它选项后面,例如可以启用--quote-names的--compatible。

 

--result-file=file,-r file

 

    将输出转向给定的文件。该选项应用在Windows中,因为它禁止将新行‘/n’字符转换为‘/r/n’回车、返回/新行序列。

 

--routines,-R

 

    在转储的数据库中转储存储程序(函数和程序)。使用---routines产生的输出包含CREATE PROCEDURE和CREATE FUNCTION语句以重新创建子程序。但是,这些语句不包括属性,例如子程序定义者或创建和修改时间戳。这说明当重载子程序时,对它们进行创建时定义者应设置为重载用户,时间戳等于重载时间。

 

    如果你需要创建的子程序使用原来的定义者和时间戳属性,不使用--routines。相反,使用一个具有mysql数据库相应权限的MySQL账户直接转储和重载mysql.proc表的内容。

 

    该选项在MySQL 5.1.2中添加进来。在此之前,存储程序不转储。

 

--set-charset

 

    将SET NAMES default_character_set加到输出中。该选项默认启用。要想禁用SET NAMES语句,使用--skip-set-charset。

 

--single-transaction

 

    该选项从服务器转储数据之前发出一个BEGIN SQL语句。它只适用于事务表,例如InnoDB和BDB,因为然后它将在发出BEGIN而没有阻塞任何应用程序时转储一致的数据库状态。

 

    当使用该选项时,应记住只有InnoDB表能以一致的状态被转储。例如,使用该选项时任何转储的MyISAM或HEAP表仍然可以更改状态。

 

--single-transaction选项和--lock-tables选项是互斥的,因为LOCK TABLES会使任何挂起的事务隐含提交。

 

    要想转储大的表,应结合--quick使用该选项。

 

--socket=path,-S path

 

    当连接localhost(为默认主机)时使用的套接字文件。

 

--skip--comments

 

    参见---comments选项的描述。

 

--tab=path,-T path

 

    产生tab分割的数据文件。对于每个转储的表,mysqldump创建一个包含创建表的CREATE TABLE语句的tbl_name.sql文件,和一个包含其数据的tbl_name.txt文件。选项值为写入文件的目录。

 

    默认情况,.txt数据文件的格式是在列值和每行后面的新行之间使用tab字符。可以使用--fields-xxx和--行--xxx选项明显指定格式。

 

    注释:该选项只适用于mysqldump与mysqld服务器在同一台机器上运行时。你必须具有FILE权限,并且服务器必须有在你指定的目录中有写文件的许可。

 

--tables

 

    覆盖---database或-B选项。选项后面的所有参量被看作表名。

 

--triggers

 

    为每个转储的表转储触发器。该选项默认启用;用--skip-triggers禁用它。

 

--tz-utc

 

    在转储文件中加入SET TIME_ZONE='+00:00'以便TIMESTAMP列可以在具有不同时区的服务器之间转储和重载。(不使用该选项,TIMESTAMP列在具有本地时区的源服务器和目的服务器之间转储和重载)。--tz-utc也可以保护由于夏令时带来的更改。--tz-utc默认启用。要想禁用它,使用--skip-tz-utc。该选项在MySQL 5.1.2中加入。

 

--user=user_name,-u user_name

 

    连接服务器时使用的MySQL用户名。

 

--verbose,-v

 

    冗长模式。打印出程序操作的详细信息。

 

--version,-V

 

    显示版本信息并退出。

 

--where='where-condition', -w 'where-condition'

 

    只转储给定的WHERE条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。

 

    例如:

 

    "--where=user='jimf'"

    "-wuserid>1"

    "-wuserid

    --xml,-X

 

    将转储输出写成XML。

 

    还可以使用--var_name=value选项设置下面的变量:

 

    max_allowed_packet

 

    客户端/服务器之间通信的缓存区的最大大小。最大为1GB。

 

    net_buffer_length

 

    客户端/服务器之间通信的缓存区的初始大小。当创建多行插入语句时(如同使用选项--extended-insert或--opt),mysqldump创建长度达net_buffer_length的行。如果增加该变量,还应确保在MySQL服务器中的net_buffer_length变量至少这么大。

 

    还可以使用--set-variable=var_name=value或-O var_name=value语法设置变量。然而,现在不赞成使用该语法。

 

例1

 

a.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名

C代码  

[root@linux mysql]# mysqldump -u dbadmin -p myblog > /home/zhangy/blog/database_bak/myblog.sql  

 

b.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

C代码  

[root@linux mysql]# mysqldump -u dbadmin -p myblog wp_users> /home/zhangy/blog/database_bak/blog_users.sql  

 

c.导出一个数据库结构 -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

C代码  

[root@linux mysql]# mysqldump -u dbadmin -p -d --add-drop-table myblog > /home/zhangy/blog/database_bak/blog_struc.sql  

 

d.导出数据库一个表结构

C代码  

[root@linux mysql]# mysqldump -u dbadmin -p -d --add-drop-table myblog  wp_users> /home/zhangy/blog/database_bak/blog_users_struc.sql  

 

例2

 

mysqldump导出数据库并压缩

C代码  

$ mysqldump -u user -ppassword database | xz > database.sql.xz  #使用xz压缩,如果换成gzip,可以改成gz压缩,bzip2同样,注意最后的扩展名  

  

$ unxz -c database.sql.xz | mysql -u user -ppassword database    #不需要释放出已压缩的sql脚本直接进行导入操作,如果是其他格式的压缩,需要相应的解压命令,使用解压到stdout的参数  

  

$ pv database.sql.xz | unxz -c | mysql -u user -ppassword database  #想看到导入的进度?没问题,使用pv命令就可以,需要自己安装pv命令,ubuntu系统直接apt-get install pv,RHEL/centos需要添加rpmfusion源之后yum install pv  

 

bitsCN.com

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

17

2026.02.26

Golang Web 开发路线:构建高效后端服务
Golang Web 开发路线:构建高效后端服务

《Golang Web 开发路线:构建高效后端服务》围绕 Go 在后端领域的工程实践,系统讲解 Web 框架选型、路由设计、中间件机制、数据库访问与接口规范,结合高并发与可维护性思维,逐步构建稳定、高性能、易扩展的后端服务体系,帮助开发者形成完整的 Go Web 架构能力。

16

2026.02.26

Golang 并发编程专题:掌握多核时代的核心技能
Golang 并发编程专题:掌握多核时代的核心技能

《Golang 并发编程专题:掌握多核时代的核心技能》系统讲解 Go 在并发领域的设计哲学与实践方法,深入剖析 goroutine、channel、调度模型与并发安全机制,结合真实场景与性能思维,帮助开发者构建高吞吐、低延迟、可扩展的并发程序,全面提升多核时代的工程能力。

16

2026.02.26

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

429

2026.02.25

Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法
Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法

本专题系统整理Steam官网最新可用入口,涵盖网页版登录地址、新用户注册流程、账号登录方法及官方游戏商店访问说明,帮助新手玩家快速进入Steam平台,完成注册登录并管理个人游戏库。

128

2026.02.25

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

41

2026.02.25

Python数据处理流水线与ETL工程实战
Python数据处理流水线与ETL工程实战

本专题聚焦 Python 在数据工程场景下的实际应用,系统讲解 ETL 流程设计、数据抽取与清洗、批处理与增量处理方案,以及数据质量校验与异常处理机制。通过构建完整的数据处理流水线案例,帮助开发者掌握数据工程中的性能优化思路与工程化规范,为后续数据分析与机器学习提供稳定可靠的数据基础。

14

2026.02.25

Java领域驱动设计(DDD)与复杂业务建模实战
Java领域驱动设计(DDD)与复杂业务建模实战

本专题围绕 Java 在复杂业务系统中的建模与架构设计展开,深入讲解领域驱动设计(DDD)的核心思想与落地实践。内容涵盖领域划分、聚合根设计、限界上下文、领域事件、贫血模型与充血模型对比,并结合实际业务案例,讲解如何在 Spring 体系中实现可演进的领域模型架构,帮助开发者应对复杂业务带来的系统演化挑战。

9

2026.02.25

Golang 生态工具与框架:扩展开发能力
Golang 生态工具与框架:扩展开发能力

《Golang 生态工具与框架》系统梳理 Go 语言在实际工程中的主流工具链与框架选型思路,涵盖 Web 框架、RPC 通信、依赖管理、测试工具、代码生成与项目结构设计等内容。通过真实项目场景解析不同工具的适用边界与组合方式,帮助开发者构建高效、可维护的 Go 工程体系,并提升团队协作与交付效率。

21

2026.02.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 12.2万人学习

ASP 教程
ASP 教程

共34课时 | 5.4万人学习

Python 教程
Python 教程

共137课时 | 10.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号