700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MySQL备份命令mysqldump参数说明与示例

MySQL备份命令mysqldump参数说明与示例

时间:2020-11-08 17:22:55

相关推荐

MySQL备份命令mysqldump参数说明与示例

数据库|mysql教程

MySQL,备份,命令,mysqldump,参数,说明,示例

数据库-mysql教程

声波源码,qml vscode,ubuntu开终端, tomcat ftp,sqlite修改列,阿里云服务器安全组,js切换插件,前端框架接口,爬虫腾讯漫画,php纯文字游戏源码,seo学习大纲,家装企业网站系统下载,网页按钮 png,汽车网站制作模板,dede搜索页面伪静态,珠宝erp管理系统easyui源码,微信小程序实例下载lzw

原文 ? /blog/seanlook/1190000002428533 1. 语法选项说明 -h, –host=name 主机名 -P[ port_num], –port=port_num 用于连接MySQL服务器的的TCP/IP端口号 –master-data 这个选项可以把binlog的位置和文件名添加到输出中,如果等于1

华鑫国际mmm互助源码,vscode中文版运行代码流程,ubuntu没有release,真机访问本地tomcat,用pytharm爬虫,php里html标签,开封seo关键词优化代理lzw

qq三国辅助源码怎么找,vscode多行注释快捷键,阿里云 ubuntu,tomcat数据源,sqlite java,简洁的网页设计,织梦cms测试数据库连接是错误的用户名和密码都不正确,2u4机房服务器,discuz破解插件安装,中文前端框架,爬虫怎么写,php 随机,学习seo,springboot整合websocket,标签框模板,带论坛功能的网站,网页图片查看器,导航栏css代码 模板,简约免费后台模板,酷炫的登陆页面,药品管理系统源码,英文打字游戏c 程序源代码lzw

? /blog/seanlook/1190000002428533

1. 语法选项说明

-h, --host=name

主机名

-P[ port_num], --port=port_num用于连接MySQL服务器的的TCP/IP端口号

--master-data这个选项可以把binlog的位置和文件名添加到输出中,如果等于1,将会打印成一个CHANGE MASTER命令;如果等于2,会加上注释前缀。并且这个选项会自动打开--lock-all-tables,除非同时设置了--single-transaction(这种情况下,全局读锁只会在开始dump的时候加上一小段时间,不要忘了阅读--single-transaction的部分)。在任何情况下,所有日志中的操作都会发生在导出的准确时刻。这个选项会自动关闭--lock-tables

-x, --lock-all-tables锁定所有库中所有的表。这是通过在整个dump的过程中持有全局读锁来实现的。会自动关闭--single-transaction--lock-tables

--single-transaction通过将导出操作封装在一个事务内来使得导出的数据是一个一致性快照。只有当表使用支持MVCC的存储引擎(目前只有InnoDB)时才可以工作;其他引擎不能保证导出是一致的。当导出开启了--single-transaction选项时,要确保导出文件有效(正确的表数据和二进制日志位置),就要保证没有其他连接会执行如下语句:ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE,这会导致一致性快照失效。这个选项开启后会自动关闭--lock-tables

-l, --lock-tables对所有表加读锁。(默认是打开的,用--skip-lock-tables来关闭,上面的选项会把关闭-l选项)

-F, --flush-logs在开始导出前刷新服务器的日志文件。注意,如果你一次性导出很多数据库(使用-databases=--all-databases选项),导出每个库时都会触发日志刷新。例外是当使用了--lock-all-tables--master-data时:日志只会被刷新一次,那个时候所有表都会被锁住。所以如果你希望你的导出和日志刷新发生在同一个确定的时刻,你需要使用--lock-all-tables,或者--master-data配合--flush-logs

--delete-master-logs备份完成后删除主库上的日志。这个选项会自动打开“–master-data`。

--opt-add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys。(默认已开启,--skip-opt关闭表示这些选项保持它的默认值)应该给你为读入一个MySQL服务器的尽可能最快的导出,--compact差不多是禁用上面的选项。

-q, --quick

不缓冲查询,直接导出至stdout。(默认打开,用--skip-quick来关闭)该选项用于转储大的表。

--set-charset

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

--add-drop-tables

在每个CREATE TABLE语句前添加DROP TABLE语句。默认开启。

--add-locks

在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。默认开启。

--create-option

在CREATE TABLE语句中包括所有MySQL表选项。默认开启,使用--skip-create-options来关闭。

-e, --extended-insert使用全新多行INSERT语法,默认开启(给出更紧缩并且更快的插入语句)

-d, --no-data不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的。

--add-drop-database在create数据库之前先DROP DATABASE,默认关闭,所以一般在导入时需要保证数据库已存在。

--default-character-set=使用的默认字符集。如果没有指定,mysqldump使用utf8。

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

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

-u[ name], --user=连接服务器时使用的MySQL用户名。

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

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

2. 示例

导出一个数据库:

$ mysqldump -h localhost -uroot -ppassword \--master-data=2 --single-transaction --add-drop-table --create-options --quick \--extended-insert --default-character-set=utf8 \--databases discuz > backup-file.sql

导出一个表:

$ mysqldump -u pak -p --opt --flush-logs pak t_user > pak-t_user.sql

将备份文件压缩:

$ mysqldump -hhostname -uusername -ppassword --databases dbname | gzip > backup-file.sql.gz对应的还原动作为gunzip < backup-file.sql.gz | mysql -uusername -ppassword dbname

导入数据库:

mysql> use target_dbnamemysql> source /mysql/backup/path/backup-file.sql或$ mysql target_dbname <backup-file.sql

导入还有一个mysqlimport命令,暂未研究。

直接从一个数据库向另一个数据库转储:

mysqldump -u用户名 -p --opt dbname | mysql --host remote_host -C dbname2

关于增量备份与恢复请参考: MySQL增量备份与恢复实例 。

参考

原文地址:MySQL备份命令mysqldump参数说明与示例, 感谢原作者分享。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。