mysqldump客户端工具可以执行逻辑备份,生成一系列可以执行的SQL语句。通过这个工具可以备份出一个或多个MySQL数据库。mysqldump命令也可以生成CSV格式、分隔符格式或XML格式的输出文件。
–常用参数
–help, -? 显示帮助
–user=user_name, -u user_name 当连接到MySQL服务器时,所使用的用户名
–password[=password], -p[password] 当连接到MySQL服务器时,所使用的密码;当使用短参数-p搭配明文密码时,在-p和密码之间不能有空格。
–socket=path, -S path 当连接到本地服务器时,Unix系统使用的套接字文件,或Windows系统使用的命名管道
–host=host_name, -h host_name MySQL服务器所在的主机。默认主机是本地服务器。
–port=port_num, -P port_num 连接所使用的TCP/IP端口号
–databases, -B 备份多个数据库
–all-databases, -A 备份所有数据库中的所有表
–tab=dir_name, -T dir_name 备份tab符分割的文本格式数据文件
–fields-terminated-by 导出文件的字段分隔符,搭配–tab参数使用
–fields-escaped-by 导出文件的字段包裹符,搭配–tab参数使用
–default-character-set=charset_name 指定默认的字符集
–tables 覆盖–databases or -B参数,备份出表的数据
–where=’where_condition’, -w ‘where_condition’ 只导出符合指定WHERE条件的行
例如:
–where=”user=’jimf'”
-w”userid>1″
-w”userid<1″
–lock-tables, -l 对于要备份的数据库,锁定所有要备份的表。对于MyISAM 表,所加的锁是READ LOCAL锁,以允许表的并发插入操作。对于事务性表InnoDB表,–single-transaction参数要比–lock-tables效果好,因为这个参数不会锁表。
–single-transaction 这个参数将事务的隔离模式设置为REPEATABLE READ,然后在备份前发送START TRANSACTION语句到服务器。这对于事务表InnoDB表来说很有用,因为备份的时候会备份一致状态的数据库(备份的时间点是发出START TRANSACTION语句的时候)而不会阻塞任何应用的进行
–no-data, -d 只导出表的结构
–no-create-info, -t 导出的时候,不导出CRATE TABLE语句
–force, -f 导出的时候,忽略所有错误,及时遇到SQL错误,也继续执行
–flush-logs, -F 导出前刷新日志文件
–extended-insert, -e 对于INSERT语句使用多行插入语法(一行INSERT语句带有多个VALUES列表),这个参数会缩小备份文件的大小并且会提高数据导入时的INSERT执行速度
–dump-slave[=value] 用于生成Slave备份集。
–include-master-host-port 通常和–dump-slave参数搭配使用,本参数将在CHANGE MASTER TO语句后附加MASTER_HOST和MASTER_PORT内容
–master-data[=value] 用于生成Slave备份集的专用参数
–lock-all-tables, -x 锁定数据库中所有的表。这个参数会在备份的过程中为数据库加上全局只读锁。这参数会关闭 –single-transaction 和 –lock-tables 这两个参数。
–disable-keys, -K 在导出的文件中输出/*!40000 ALTER TABLE tbl_name DISABLE KEYS */; 和 /*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句。在插入数据前先禁用索引,等数据插入完成后再启用索引,目的是为了加快导入的速度。
–max_allowed_packet 服务端和客户端连接使用buffer的最大字节长度,默认值时24MB,最大值时1GB。
–net_buffer_length 服务端和客户端连接使用的初始化buffer大小
–no-autocommit 禁用自动提交功能
–no-create-db, -n 不生成CREATE DATABASE语句
–routines, -R 导出存储过程和函数
–flush-privileges 当导出mysql数据库后执行FLUSH PRIVILEGES语句
–ignore-table=db_name.tbl_name 不导出的表名
[root@localhost backup]# /software/bin/mysqldump -help
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] –databases [OPTIONS] DB1 [DB2 DB3…]
OR mysqldump [OPTIONS] –all-databases [OPTIONS]
For more options, use mysqldump –help
–备份单个数据库
[root@localhost tmp]# /software/bin/mysqldump -usystem -p’Mysql#2015′ -S /data/mysql.sock fire > /backup/firedb_fullbk.sql
–备份多个数据库
[root@localhost tmp]# /software/bin/mysqldump -usystem -p’Mysql#2015′ -S /data/mysql.sock –databases neo fire > /backup/fire_neo_db_fullbk.sql
–备份全库
[root@localhost tmp]# /software/bin/mysqldump -usystem -p’Mysql#2015′ -S /data/mysql.sock –all-databases > /backup/all_db_fullbk.sql
–备份所有库
[root@localhost backup]# /software/bin/mysqldump -usystem -p’Mysql#2015′ -S /data/mysql.sock -A -R –single-transaction -l –default-character-set=utf8 | gzip > /backup/dbfullbak_`date +%F`.sql.gz
— Warning: Skipping the data of table mysql.event. Specify the –events option explicitly.
[root@localhost backup]# ls -trl
-rw-r–r–. 1 root root 1208158 Apr 23 07:11 dbfullbak_2016-04-23.sql.gz
–备份单个库,生成tab符分割的文本格式数据文件
[root@localhost tmp]# /software/bin/mysqldump -usystem -p’Mysql#2015′ -S /data/mysql.sock –tab=/backup/ fire