如何理解mysqldump备份数据库
mysqldump用于导出mysql数据库的结构和数据。
用法:mysqldump [OPTIONS] database [tables] #介绍表
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] #介绍数据库< /p>
或 mysqldump [OPTIONS] --all-databases [OPTIONS]
默认选项按给定顺序从以下文件中读取:
/etc/我的。 cnf /etc/mysql/my.cnf /u01/app/mysql/my.cnf ~/.my.cnf
读取以下组:mysqldump客户端
以下选项可以作为第一个参数给出:
--print-defaults 打印程序参数列表并退出。
--no-defaults 不要从任何选项文件中读取默认选项。
--defaults-file=# 只读取给定文件中的默认选项#。
--defaults-extra-file=# 读取此文件读取全局文件后。
-A, --all-databases 导出所有数据库。这与 --databases 选择所有数据库相同
-Y, --all-tablespaces 导出所有表空间
p>-y, --no-tablespaces 不要转储任何表空间信息。
--add-drop-database 在每次创建之前添加 DROP DATABASE。
< p> --add-drop-table 在每次创建之前添加 DROP TABLE。 (默认情况下,使用 --skip-add-drop-table 禁用它)--add-locks 在 INSERT 语句周围添加锁。 (默认启用,使用 --skip-add-locks 禁用它)
--allow-keywords 允许创建列名称作为关键字。
--apply-slave -语句将“STOP SLAVE”添加到转储底部的“CHANGE MASTER”和“START SLAVE”之前。
--character-sets-dir=name 文件目录字符集
-i, --comments 注释信息(默认启用,使用--skip-comments 禁用)
--兼容=名称 更改转储以与给定模式兼容。由德错误,表以适合 MySQL 的格式转储。合法模式有:ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_table_options、no_field_options。有多种用逗号分隔的模式可用。注意:需要 MySQL 服务器版本 4.1.0 或更高版本。早期的服务器版本将忽略此选项。
--compact 减少输出(适合调试)。禁用结构注释和页眉/页脚结构。启用选项 --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys --skip-set-charset。
-c, --complete-insert 使用完整的插入语句
-C, --compress 在服务器/客户端协议中使用压缩。
-a, --create-options 包含所有特定于 MySQL 的创建选项(默认打开;使用 --skip-create-options 禁用)。
-B, --databases 转储多个数据库。所有名称参数都被视为数据库名称。
-#, --debug[=#] 这是非调试版本。捕捉这个和前它。
--debug-check 退出时检查内存和打开文件的使用情况。
--debug-info 退出时打印一些调试信息。
--default-character-set=name 设置默认字符集。
--delayed-insert 使用 INSERT DELAYED 插入行。
--delete-master-logs 备份后删除主服务器上的日志。这会自动启用--master-data。
-K, --disable-keys '/*!40000 更改表 tb_name 禁用键 */;和
'/*!40000 ALTER TABLE tb_name ENABLE KEYS */;将被放入
输出中。
--dump-slave[=#](默认打开;使用--skip-disable-keys禁用。)这将导致master 将二进制日志位置和文件名附加到转储数据输出中。将值设置为1将转储打印在数据输出中作为CHANGE MASTER命令;如果等于 2,该命令将以注释符号为前缀。该选项将打开 --lock-all-tables 除非指定了 --single-transaction (在这种情况下,全局重新ad 锁仅在转储开始时保留很短的时间 - 不要忘记阅读下面的 --single-transaction )。在所有情况下,对日志的任何操作都将在转储的确切时刻发生。选项自动关闭 - 锁定桌子。
-E, --events 转储事件。
-e, --extended-insert 使用包含多个 VALUES 列表的多行 INSERT 语法(默认打开;使用 --skip-extended-insert 禁用)。
--fields-termerated-by=名称终止符
--fields-enlined-by=名称分隔符
--fields-optionally-enlined -by =名称字段可选分隔符
--fields-escaped-by=名称转义字符
-F, --flush-logs 在开始转储服务器中的日志文件之前刷新。请注意,如果一次转储许多数据库(使用选项 --databases= 或 --all-databases),则将刷新每个转储数据库的日志。例外:使用 --lock-all-tables 或 --master-data:在这种情况下,日志将仅刷新一次,对应于 wh 的时刻所有表都被锁定。因此,如果您希望转储和日志刷新在同一时刻发生,则应该使用 --lock-all-tables 或 --master-data 和 --flush-logs。
--flush-privileges 在转储 mysql 数据库后发出 FLUSH PRIVILEGES 语句。每当转储包含 mysql 数据库并且任何其他数据库依赖于 mysql 数据库中的数据才能正确恢复时,应使用此选项。
-f, --force 即使有错误也继续执行
-?, --help 查看帮助信息
--hex-blob 十六进制复制转储二进制文件
-h, --host=name 连接到主机
--ignore-table=name 不备份指定表。要指定要忽略的多个表,请多次使用该指令,每个表一次。每个表必须同时指定数据库和表名称,例如-ignore-table=database.table。
--include-master-host-port 将 'MASTER_HOST=
--insert-ignore 使用 INSERT IGNORE 插入行。
--lines-termerated-by=name 行终止符
-x, --lock-all-tables 通过添加全局锁,在备份期间锁定所有表。会自动关闭--single-transaction和--lock-tables off。
-l, --lock-tables 锁定所有表(默认启用,使用--skip-lock-tables禁用)
p>--log-error=name 错误日志文件
--master-data[=#] 这将使二进制日志位置和文件名附加到输出中。如果等于1,则将其打印为CHANGE MASTER命令;如果等于 2,该命令将以注释符号为前缀。除非指定了 --single-transaction,否则此选项将打开 --lock-all-tables(在这种情况下,全局读锁仅在转储开始时保留很短的时间;不要忘记读取 --single -交易 )。在所有情况下,对日志的任何操作都将在转储的确切时刻发生。选项 --lock-tables 会自动生效关掉了。
--max-allowed-packet=# 发送到服务器或从服务器接收的最大数据包长度。
--net-buffer-length=# 用于 TCP/IP 和套接字通信的缓冲区大小。
--no-autocommit 使用autocommit/commit语句来封装表。
-n, --no-create-db 不使用 CREATE DATABASE ... IF EXISTS 语句。如果给出了 --all-databases 或 --databases ,则通常针对每个转储的数据库。输出。
-t, --no-create-info 不写入表信息
-d, --no-data 不导出数据
-N , --no-set-names 不设置字符集,与 --skip-set-charset 相同
--opt 和 --add-drop-table, --add-locks, --create- options、--quick、--extended-insert、--lock-tables、--set-charset 和 --disable-keys。默认启用,使用 --skip-opt 禁用。
--order-by-primary 如果有主键或唯一键,则按这些键排序。从 MyISAM 转储表时这会很有用到 InnoDB,但会进行转储如果需要更长的时间。
-p, --password[=name] 密码
-P, --port=# 连接端口
--protocol=name 连接协议( TCP、套接字、PIPE、
内存)。
-Q,--quick,不缓冲查询,直接传输到stdout(默认打开;使用--skip-QUick禁止)。
-Q, --quote-names 带反引号 (`) 的引用表和列名称(默认打开;使用 --skip-quote-names 禁用)。
--replace 使用 REPLACE INTO 而不是 INSERT INTO。
-r, --result-file=name 直接输出到给定文件。此选项应在使用回车换行符对 (\r\n) 分隔文本行的系统(例如 DOS、Windows)上使用。此选项确保仅使用单个换行符。
-R, --routines 转储存储例程(函数和过程)。
--set-charset 将“SET NAMES default_character_set”添加到输出中。 (默认打开;使用 --skip-set-charset 禁用)。
--single-transaction 创建一致的快照 by 在单个事务中转储所有表。仅适用于存储在支持多版本的存储引擎(目前仅InnoDB)中的表;不保证转储与其他存储引擎保持一致。当单个事务转储正在进行时,为了确保有效的转储文件(正确的表内容和二进制日志位置),其他连接不应使用以下语句:ALTER TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE,因为一致性快照不可用与他们隔离。自动关闭选项 --lock-tables。
--dump-date 将转储日期放在输出的末尾。 (默认启用;使用 --skip-dump-date 禁用。)
--skip-opt 禁用 --opt。禁用 --add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables 、--set-charset 和 --disable-keys。
-S, --socket=name 要连接的套接字
-T, --tab=name 创建制表符分隔的文本文件给定路径上的每个表。 (创建 .sql 和 .txt 文件。) 注意:仅当 mysqldump 与 mysql 服务器在同一台计算机上运行时,这才有效。
--tables 覆盖选项 --databases (-B)。
--triggers 每个转储表的转储触发器。 (默认打开;使用 --skip-triggers 禁用)。
--tz-utc SET TIME_ZONE = '+00:00' 在转储顶部,以允许在不同时区的服务器中的数据在不同时区的服务器之间移动时转储 TIMESTAMP 数据(默认为;使用 --skip-tz-utc 禁用。)
-u, --user=name 用户名。
-v, --verbose 在每个阶段打印信息。
-V, --version 输出版本信息并退出。
-w, --where=name 导出查询条件中的数据
-X, --xml 使用XML格式
--plugin-dir= name客户端插件目录
--default-auth=name 使用的默认身份验证客户端插件。
变量(--variable-name=value)
和布尔选项 {FALSE|TRUE} 值(读取选项后)
----- ---------------------------------------- ---------- ------------------ ------------------
所有数据库 FALSE
所有表空间 FALSE
无表空间 FALSE
add-drop-database FALSE
add-drop-table FALSE
< p>add-drop-table >apply-slave-statements FALSE
character-sets-dir(无默认值)
comments(无默认值)
紧凑型 为 FALSE
完整插入 FALSE
压缩 FALSE
创建选项 TRUE
数据库 FALSE
调试信息 FALSE
< p>默认字符集 utf8延迟插入 FALSE
删除主日志 FALSE
< p>disable-keys TRUEdump-slave 0
事件 FALSE
扩展插入use using using with using ' ‐ ‐ ‐ ‐ 到
fields-optionally-enlated-by(无默认值)
fields-escaped-by(无默认值)
flush-logs FALSE
Flush-PRIVILEGES FALSE
Force False
Hex-Blob False
<主机(无默认值)include-master-host-port (无默认值)FALSE
insert-ignore (无默认值)
lock-all -表格 0
最大允许数据包 25165824
净缓冲区长度 1046528
不自动提交 FALSE
不创建-D b假
端口 例程 >set-charset TRUE
单笔交易 F ALSE
dump-date TRUE
套接字默认值) p>
tab (无默认值)
触发器 >
详细 FALSE
其中(无默认值)
plugin-dir(无默认值)
default-auth(无默认值)
-------------------- ----------------- ---------------------------------------------------------------- ----------------------------
1.订单表
mysqldump -uroot - p mysql 用户;
2.订购库
mysqldump -uroot -phwj3509 --databases hwj >测试.sql
3.导入多表
mysqldump -uroot -p mysql user proc>test.sql
4.导入多个库
mysqldump -uroot -p --databases hwj 51vj>test.sql
5.增量备份
mysqldump下实现增量备份实际上依赖于mysqldump全量备份和binlog日志实现,通过在mysqldump命令中添加--flush-logs来生成新日志。恢复时使用mysqlbinlog进行恢复。
mysqldump -uroot -phwj3509 --single-transaction --flush-logs --master-data=2 --all_databases> backup.sql;
关于如何理解mysqldump备份数据库就分享到这里了,希望以上内容能够对大家有一定的帮助,可以学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何理解mysqldump备份数据库