首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >利用mysqldump备份数据库

利用mysqldump备份数据库

作者头像
跑马溜溜的球
发布于 2020-12-07 15:28:45
发布于 2020-12-07 15:28:45
1.5K0
举报
文章被收录于专栏:日积月累1024日积月累1024

mysqldump是sql级别的备份机制,它将数据表导成sql脚本文件,是非常常用的备份方法。

下面整理了mysqldump的用法和几个常用参数。

基本用法:

代码语言:javascript
复制
mysqldump -u用户名 -p密码 -h主机 数据库 表 > 文件名

如果想导出整个库,不加表名即可。

例:

代码语言:javascript
复制
mysqldump -uroot -h10.1.153.23 achievement black > black.dump

常用选项: 1.  --all-databases  导出所有数据库 例:

代码语言:javascript
复制
mysqldump -uroot -h10.1.153.23 --all-databases > all.dump

2. --default-character-set=name  设置默认字符集 导入导出时最好都加上这个选项,我就遇到过在不同版本的mysql间导数据,因为没有加此选,导入时提示sql有语法错误的情况。 例:

代码语言:javascript
复制
mysqldump -uroot -h10.1.153.23 --default-character-set=utf8 achievement black > black.dump

3. --complete-insert  导出的数据采用包含字段名的完整INSERT方式。 例: 如果在不加该选项时,导出数据中的一条是如下形式:

代码语言:javascript
复制
INSERT INTO `category` VALUES (1,'动作','2012-07-20 04:12:23');

加了该选项后,此数据在dump文件中的形式如下:

代码语言:javascript
复制
INSERT INTO `category` (`id`, `name`, `ctime`) VALUES (1,'动作','2012-07-20 04:12:23');

可能的应用场景: 将A库中category表的数据导入B库,但B库的category表新加了validate字段。此时,A库的category表在mysqldump时如果不加--complete-insert选项则无法导入B库category表,会提示列数不同的错误。

4. --no-create-info  只导出数据,而不添加CREATE TABLE语句

5. --where

按where条件导出数据 例:

代码语言:javascript
复制
mysqldump -uroot -h10.1.153.22 hao_game category --where "validate=2"

只导出validate为2的数据。

6. --no-data 只导出建表语句,不导数据。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012/07/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档