mysqldump备份

Posted 叶落千尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump备份相关的知识,希望对你有一定的参考价值。

备份单个表:

mysqldump -uroot -p123456 -B test  --tables test > ~/test.sql      备份test库下的test表

备份整个数据库:

mysqldump -uroot -p123456 -B test  > ~/test.sql

备份所有数据库,包括系统库:

mysqldump -uroot -p123456 -A > ~/test.sql

常用参数:

--events, -E

导出events。

使用--events contains CREATE EVENT 语句生成的输出来创建事件。但是,这些语句不包括事件创建和修改时间戳等属性,因此在重新加载事件时,会创建时间戳等于重新加载时间的事件。

如果您需要使用其原始时间戳属性创建事件,请不要使用--events而是mysql.event使用具有适当mysql数据库权限的MySQL帐户直接转储和重新加载表 的内容 

--routines, -R

在输出中包含转储数据库的存储例程(过程和函数)。此选项需要的 SELECT权限 mysql.proc

使用--routines contains CREATE PROCEDURE和 CREATE FUNCTION语句生成的输出来创建例程。但是,这些语句不包括例程创建和修改时间戳等属性,因此在重新加载例程时,会创建时间戳等于重新加载时间的例程。

如果您需要使用其原始时间戳属性创建例程,请不要使用 --routines而是mysql.proc使用具有适当mysql数据库权限的MySQL帐户直接转储和重新加载的内容

--triggers

在输出中包含每个转储表的触发器。默认情况下启用此选项; 禁用它 --skip-triggers

为了能够转储表的触发器,您必须具有TRIGGER该表的 权限。

在MySQL 5.7.2之前,表不能有多个具有相同触发事件(INSERT, UPDATE和 DELETE)和动作时间(BEFOREAFTER组合的触发器MySQL 5.7.2解除了这个限制,允许多个触发器。mysqldump以激活顺序转储触发器,以便在重新加载转储文件时,以相同的激活顺序创建触发器。但是,如果是mysqldump转储文件包含具有相同触发事件和操作时间的表的多个触发器,尝试将转储文件加载到不支持多个触发器的旧服务器时会发生错误。(有关解决方法,请参见 第2.11.2.1节“影响MySQL 5.7降级的更改” ;您可以将触发器转换为与旧服务器兼容。)

--where=‘where_condition, -w ‘where_condition

仅转储由给定WHERE条件选择的行 如果条件包含空格或其他对命令解释程序特殊的字符,则必须引用该条件。

例子:

--where="user=‘jimf‘"
-w"userid>1"
-w"userid<1"

以上是关于mysqldump备份的主要内容,如果未能解决你的问题,请参考以下文章

mysqldump备份成压缩包

mysqldump备份成压缩包

java中使用mysqldump 备份数据库

mysqldump备份的问题

mysql mysqldump只导出表结构或只导出数据的实现方法

mysql mysqldump只导出表结构或只导出数据的实现方法