mysql的备份恢复之 |
您所在的位置:网站首页 › mysqldump备份数据库不完整 › mysql的备份恢复之 |
1. 目录
目录1. 目录2. 一. 背景2.1. 分类2.2. 基本实现原理3. 非一致性备份和一致性备份原理3.1. 非一致性备份原理:3.2. 一致性备份原理:4. 常用备份命令:4.1. 建议生产上使用的备份命令:4.2. 常用备份选项:4.3. 参数详解:4.4. 导入4.5. 导入时记录日志到文件中
2. 一. 背景
2.1. 分类
对于MySQL的备份,可分为以下两种: 冷备 热备 冷备: 在mysql中没有特定的冷备份工具,所以myslq的冷备就是将数据库关掉,利用操作系统命令拷贝数据库相关文件。 热备: 指的是在线热备,即在不关闭数据库的情况下,对数据库进行备份。实际生产中基本上都是后者。 关于热备,也可分为两种方式: 逻辑备份 物理备份 逻辑备份:常用的工具是MySQL自带的mysqldump, 物理备份:常用的工具是Percona提供的XtraBackup。 对于规模比较小,业务并不繁忙的数据库,一般都是选择mysqldump。 2.2. 基本实现原理mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。 mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。 mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。mysqldump整体备份的基本流程如下: mysqldump的效率还是比较低下,START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */只能等到所有表备份完后才结束, 其实效率比较高的做法是备份完一张表就提交一次,这样可尽快释放Undo表空间快照占用的空间。但这样做,就无法实现对所有表的一致性备份。摘录自:http://www.trsenzhangdb.com/?p=1235 3. 非一致性备份和一致性备份原理 3.1. 非一致性备份原理:不加--single-transaction参数时的备份,比如 mysqldump -uroot -p dbname --triggers --routines --events > /data/bakdata/dbname.sql加上--single-transaction参数的备份即使一致性备份 mysqldump -uroot -p dbname --master-data=2 --single-transaction --triggers --routines --events > /data/bakdata/dbname.sql
备份原理解析 1.第一次flush是不需要锁表的,第一次将所有数据刷新到磁盘,检查能否进行加锁一致性备份 2.FTWRL针对全库加global read lock 3.设置事务隔离级别RR,为了下面进行快照上一致性读而做(RR mysql默认的隔离级别) 4.开启一个一致性快照的事务 5.获取GTID 6.释放FTWRL加的 global read lock 7.做一个还原点 8.查看库里所有表的信息 9.利用show create table xxx;进行备份(循环至整个DB下表备份结束),每个表备份结束时回退到还原点 10.释放掉还原点 特点: 1.锁表时间短 (设置了事务隔离级别为RR模式,启用了一致性事务快照之后,就能保证当前数据不会产生幻读),然后就可以将表锁释放。 2.一致性备份(innodb) 3.备份是否能有效进行,取决于第一步下发的flush tables 4.对于非事务引擎,不会进行一致性备份 4. 常用备份命令: 4.1. 建议生产上使用的备份命令:(注意:1.生产上一定要使用一致性备份:--single-transaction) 2.mysqldump备份时,避免将flush-logs与—single-transaction两个参数放在一起 这个两个参数放在一起,会在开始dump数据之前先执行一个FLUSH TABLES操作 当mysqldump使用参数--single-transaction的时候,会启动一个事务,确保拿到一致性视图。而由于MVCC的支持,这个过程中数据是可以正常更新的。 视图不用单独指定,视图默认会迁移 1. 不需要输出GTID的一致性备份: mysqldump -uroot -p dbname --set-gtid-purged=OFF --master-data=2 --single-transaction --triggers --routines --events --log-error=/tmp/mysqldump_error_log.err > /data/bakdata/dbname.sql 2. 需要输出GTID的一致性备份: mysqldump -uroot -p dbname --master-data=2 --single-transaction --triggers --routines --events --log-error=/tmp/mysqldump_error_log.err > /data/bakdata/dbname.sql innodb存储引擎建议使用一致性备份,一致性备份锁表时间较短,并且会判断需备份的表是否有大事物在执行,如果有,则暂时不会备份,对数据库的影响较小。 3.只备份表结构,不备份数据 mysqldump --no-data -uxxx -pxxxxxxxxxxxxx -h1xxxxxxx --databases db1 db2 --triggers --routines --events > /data/dumpdir/1128/db.sql 4.mysqldump 备份恢复,获取gtid,且不锁表 mysqldump -uuser -xxxxxxx -hip --single-transaction --triggers --routines --set-gtid-purged=ON --databases ai_alg > ai_alg.sql 后台执行: nohup sh dump.sh > dump.log 2>&1 & 4.2. 常用备份选项: 1、mysqldump备份并且压缩数据 mysqldump -hlocalhost -uroot -p'passwd' dbname tablename | gzip > /tmp/tablename.sql.gz 2、备份所有的数据库(直接root用户执行) mysqldump -u root -p --all-databases > all.sql 3、备份数据库test mysqldump -u root -p test > test.sql 4、备份数据库test下的表emp; mysqldump -u root -p mysql > mysql.sql 5、备份数据库test下的表emp和dept mysqldump -u root -p test emp dept > emp_dept.sql 2、mysql 数据导出排除指定某个表 mysqldump --database test --ignore-table=test.a > test.sql 3、mysql 数据导出排除指定的多个表--多表间并列 mysqldump --database test --ignore-table=test.a --ignore-table=test.b --ignore-table=test.c > test.sql 6、备份表中的数据,并使用逗号分隔 如下:备份了test数据库中的test1表中的数据到/var/lib/mysql-files/ 目录下,并且使用逗号分隔开表中的数据,不包含表头 mysqldump -uroot -p -T /var/lib/mysql-files/ test test1 --fields-terminated-by ',' 7、备份多个数据库 mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql 加上了--databases选项,然后后面跟多个数据库 mysqldump -u root -p --databases test mysql > D:\backup.sql 8、跨主机备份 使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库: mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb -C指示主机间的数据传输使用数据压缩 9、只备份表结构 mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump 将只备份表结构。--databases指示主机上要备份的数据库。如果要备份某个MySQL主机上的所有数据库可以使用--all-databases选项,如下: mysqldump --all-databases > test.dump 或者直接加 -d 参数 --extended-insert, -e 使用具有多个VALUES列的INSERT语法。这样使导出文件更小,并加速导入时的速度。默认为打开状态,使用--skip-extended-insert取消选项。 mysqldump -uroot -p --all-databases mysqldump -uroot -p --all-databases--skip-extended-insert (取消选项) 如: mysqldump -uroot -p'iflytekcti' -d aichang > /tmp/aichang.sql mysqldump -uroot -p'iflytekcti' -d column > /tmp/column.sql mysqldump -uroot -p'iflytekcti' -d datafetch > /tmp/datafetch.sql 10、大数据量备份 -q mysqldump -uroot --master-data=2 -p --single-transaction -q --set-gtid-purged=OFF test t >3.sql 11.按照sql条件导出,并只备份数据,不要表结构,关闭GITD信息,同时设置每个insert 语句对应一个values mysqldump -uroot -p'passwd' db_name table_name -t --set-gtid-purged=OFF --single-transaction --skip-extended-insert --where="copr_id in (select id from idteset)" > /mysqldata/bakData/tb_synccopyright_info.sql 12.备份指定库下面的指定表 --tables 参数后面用空格隔开表名 mysqldump -u root -p'root' dbname --tables tab1 tab2 --set-gtid-purged=OFF > PAYMENT.sql 13.mysqldump导出为CSV文件 把相关的数据导出成CSV格式的文件 mysqldump -h 127.0.0.1 -u root -p database table -t -T /home/mysql/ --fields-enclosed-by=\" --fields-terminated-by=, mysqldump -uroot -p -t -T /var/lib/mysql-files/ mydb customers --fields-terminated-by=',' --fields-enclosed-by='\"' 1、databasename :导出的数据库; 2、tablename:导出的数据表; 3、-t :不导出create 信息; 4、-T 指定到处的位置,目录权限777; 5、--fields-enclosed-by=\" :字段引号; 6、--fields-terminated-by=, :字段分割符; -w 增加条件判断语句 eg.导出ID为2 的数据 mysqldump -h 127.0.0.1 -u root -p database table -t -T /home/mysql/ -w'id=2' --fields-enclosed-by=\" --fields-terminated-by=, 导出SQL mysqldump --skip-lock-tables -h [host] -P[port] -u username -p passwd dbname tablename -w'where条件'>'导出文件.sql' 4.3. 参数详解: --all-databases , -A 导出全部数据库。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 导出全部表空间。 mysqldump -uroot -p --all-databases --all-tablespaces --no-tablespaces , -y 不导出任何表空间信息。 mysqldump -uroot -p --all-databases --no-tablespaces --add-drop-database 每个数据库创建之前添加drop数据库语句。 mysqldump -uroot -p --all-databases --add-drop-database --add-drop-table 每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项) mysqldump -uroot -p --all-databases (默认添加drop语句) mysqldump -uroot -p --all-databases –skip-add-drop-table (取消drop语句) --add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(默认为打开状态,使用--skip-add-locks取消选项) mysqldump -uroot -p --all-databases (默认添加LOCK语句) mysqldump -uroot -p --all-databases –skip-add-locks (取消LOCK语句) --allow-keywords 允许创建是关键词的列名字。这由表名前缀于每个列名做到。 mysqldump -uroot -p --all-databases --allow-keywords --apply-slave-statements 在'CHANGE MASTER'前添加'STOP SLAVE',并且在导出的最后添加'START SLAVE'。 mysqldump -uroot -p --all-databases --apply-slave-statements --character-sets-dir 字符集文件的目录 mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets --comments 附加注释信息。默认为打开,可以用--skip-comments取消 mysqldump -uroot -p --all-databases (默认记录注释) mysqldump -uroot -p --all-databases --skip-comments (取消注释) --compatible 导出的数据将和其它数据库或旧版本的MySQL 相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等, 要使用几个值,用逗号将它们隔开。它并不保证能完全兼容,而是尽量兼容。 mysqldump -uroot -p --all-databases --compatible=ansi --compact 导出更少的输出信息(用于调试)。去掉注释和头尾等结构。可以使用选项:--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys mysqldump -uroot -p --all-databases --compact --complete-insert, -c 使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。 mysqldump -uroot -p --all-databases --complete-insert --compress, -C 在客户端和服务器之间启用压缩传递所有信息 mysqldump -uroot -p --all-databases --compress --create-options, -a 在CREATE TABLE语句中包括所有MySQL特性选项。(默认为打开状态) mysqldump -uroot -p --all-databases - -databases, -B 导出几个数据库。参数后面所有名字参量都被看作数据库名(用空格隔开)。 mysqldump -uroot -p --databases test mysql - -debug 输出debug信息,用于调试。默认值为:d:t,/tmp/mysqldump.trace mysqldump -uroot -p --all-databases --debug mysqldump -uroot -p --all-databases --debug=” d:t,/tmp/debug.trace” --debug-check 检查内存和打开文件使用说明并退出。 mysqldump -uroot -p --all-databases --debug-check --debug-info 输出调试信息并退出 mysqldump -uroot -p --all-databases --debug-info --default-character-set 设置默认字符集,默认值为utf8 mysqldump -uroot -p --all-databases --default-character-set=utf8 --delayed-insert 采用延时插入方式(INSERT DELAYED)导出数据 mysqldump -uroot -p --all-databases --delayed-insert --delete-master-logs master备份后删除日志. 这个参数将自动激活--master-data。 mysqldump -uroot -p --all-databases --delete-master-logs --disable-keys 对于每个表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用INSERT语句。 这样可以更快地导入dump出来的文件,因为它是在插入所有行后创建索引的。该选项只适合MyISAM表,默认为打开状态。 mysqldump -uroot -p --all-databases --dump-slave 该选项将主的binlog位置和文件名追加到导出数据的文件中(show slave status)。设置为1时,将会以CHANGE MASTER命令输出到数据文件; 设置为2时,会在change前加上注释。该选项将会打开--lock-all-tables,除非--single-transaction被指定。该选项会自动关闭--lock-tables选项。默认值为0。 mysqldump -uroot -p --all-databases --dump-slave=1 mysqldump -uroot -p --all-databases --dump-slave=2 --master-data 该选项将当前服务器的binlog的位置和文件名追加到输出文件中(show master status)。如果为1,将会输出CHANGE MASTER 命令;如果为2, 输出的CHANGE MASTER命令前添加注释信息。该选项将打开--lock-all-tables 选项,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间;其他内容参考下面的--single-transaction选项)。该选项自动关闭--lock-tables选项。 mysqldump -uroot -p --host=localhost --all-databases --master-data=1; 输出:CHANGE MASTER TO MASTER_LOG_FILE='mysql2-bin.000049', MASTER_LOG_POS=587; mysqldump -uroot -p --host=localhost --all-databases --master-data=2; 输出:-- CHANGE MASTER TO MASTER_LOG_FILE='mysql2-bin.000049', MASTER_LOG_POS=587; --events, -E 导出事件。 mysqldump -uroot -p --all-databases --events --extended-insert, -e 使用具有多个VALUES列的INSERT语法。这样使导出文件更小,并加速导入时的速度。默认为打开状态,使用--skip-extended-insert取消选项。 mysqldump -uroot -p --all-databases mysqldump -uroot -p --all-databases--skip-extended-insert (取消选项) --fields-terminated-by 导出文件中忽略给定字段。与--tab选项一起使用,不能用于--databases和--all-databases选项 mysqldump -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#” --fields-enclosed-by 输出文件中的各个字段用给定字符包裹(封闭符)。与--tab选项一起使用,不能用于--databases和--all-databases选项 mysqldump -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#” --fields-optionally-enclosed-by 输出文件中的各个字段用给定字符选择性包裹。与--tab选项一起使用,不能用于--databases和--all-databases选项 mysqldump -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#” --fields-optionally-enclosed-by =”#” --fields-escaped-by 输出文件中的各个字段忽略给定字符。与--tab选项一起使用,不能用于--databases和--all-databases选项 mysqldump -uroot -p mysql user --tab=”/home/mysql” --fields-escaped-by=”#” --flush-logs 开始导出之前刷新日志。 请注意:假如一次导出多个数据库(使用选项--databases或者--all-databases),将会逐个数据库刷新日志。除使用--lock-all-tables或者--master-data外。 在这种情况下,日志将会被刷新一次,相应的所以表同时被锁定。因此,如果打算同时导出和刷新日志应该使用--lock-all-tables 或者--master-data 和--flush-logs。 mysqldump -uroot -p --all-databases --flush-logs --flush-privileges 在导出mysql数据库之后,发出一条FLUSH PRIVILEGES 语句。为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。 mysqldump -uroot -p --all-databases --flush-privileges --force 在导出过程中忽略出现的SQL错误。 mysqldump -uroot -p --all-databases --force --help 显示帮助信息并退出。 mysqldump --help --hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB。 mysqldump -uroot -p --all-databases --hex-blob --host, -h 需要导出的主机信息 mysqldump -uroot -p --host=localhost --all-databases --ignore-table 不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 …… mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user --include-master-host-port 在--dump-slave产生的'CHANGE MASTER TO..'语句中增加'MASTER_HOST=,MASTER_PORT=' mysqldump -uroot -p --host=localhost --all-databases --include-master-host-port --insert-ignore 在插入行时使用INSERT IGNORE语句. mysqldump -uroot -p --host=localhost --all-databases --insert-ignore --lines-terminated-by(每行的结尾用什么符号分割) 输出文件的每行用给定字符串划分。与--tab选项一起使用,不能用于--databases和--all-databases选项。 mysqldump -uroot -p --host=localhost test test --tab=”/tmp/mysql” --lines-terminated-by=”##” --lock-all-tables, -x 提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。 mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables --lock-tables, -l 开始导出前,锁定所有表。用READ LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。 请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。 mysqldump -uroot -p --host=localhost --all-databases --lock-tables --log-error 附加警告和错误信息到给定文件 mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err --max_allowed_packet 服务器发送和接受的最大包长度。 mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240 --net_buffer_length TCP/IP和socket连接的缓存大小。 mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024 我们发现,每次只能插入2.7万条左右的记录,通过修改MySQL variables参数,可能会更改插入效率。但每次insert的值无法改变。后来研究备份文件内容发现, 每个insert语句后面的values值大约就在2.7万左右。不是一条insert语句把所有values都插入的。那如果我想更改mysqldump导出时每个insert语句的values值的数量,该如何操作呢? 方法如下: # mysqldump -uroot -p'123456' --net-buffer-length=2046528 --set-gtid-purged=OFF tdb history>history.sql 通过修改--net-buffer-length的值来实现。默认值为1046528。而mysqld中该参数的默认值为16384。 修改后,我发现每个insert语句的values值,可以高达5.4万左右。 问题:是不是这个值调的越高越好呢? 经过测试发现: 1、调高后,备份速度明显快很多。 2、但恢复数据时,由于需要对表进行加锁,所以加锁时间也会边长。 这个要权衡利弊进行设置。 --no-autocommit 使用autocommit/commit 语句包裹表。 mysqldump -uroot -p --host=localhost --all-databases --no-autocommit --no-create-db, -n 只导出数据,而不添加CREATE DATABASE 语句。 mysqldump -uroot -p --host=localhost --all-databases --no-create-db --no-create-info, -t 只导出数据,而不添加CREATE TABLE 语句。 mysqldump -uroot -p --host=localhost --all-databases --no-create-info --no-data, -d 不导出任何数据,只导出数据库表结构。 mysqldump -uroot -p --host=localhost --all-databases --no-data --no-set-names, -N 等同于--skip-set-charset mysqldump -uroot -p --host=localhost --all-databases --no-set-names --opt 等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用--skip-opt禁用. mysqldump -uroot -p --host=localhost --all-databases --opt --order-by-primary 如果存在主键,或者第一个唯一键,对每个表的记录进行排序。在导出MyISAM表到InnoDB表时有效,但会使得导出工作花费很长时间。 mysqldump -uroot -p --host=localhost --all-databases --order-by-primary --password, -p 连接数据库密码 --pipe(windows系统可用) 使用命名管道连接mysql mysqldump -uroot -p --host=localhost --all-databases --pipe --port, -P 连接数据库端口号 --protocol 使用的连接协议,包括:tcp, socket, pipe, memory. mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp --quick, -q 不缓冲查询,直接导出到标准输出。默认为打开状态,使用--skip-quick取消该选项。 mysqldump -uroot -p --host=localhost --all-databases mysqldump -uroot -p --host=localhost --all-databases --skip-quick --quote-names,-Q 使用(`)引起表和列名。默认为打开状态,使用--skip-quote-names取消该选项。 mysqldump -uroot -p --host=localhost --all-databases mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names --replace 使用REPLACE INTO 取代INSERT INTO. mysqldump -uroot -p --host=localhost --all-databases --replace --result-file, -r 直接输出到指定文件中。该选项应该用在使用回车换行对(\\r\\n)换行的系统上(例如:DOS,Windows)。该选项确保只有一行被使用。 mysqldump -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt --routines, -R 导出存储过程以及自定义函数。 mysqldump -uroot -p --host=localhost --all-databases --routines --set-charset 添加'SET NAMES default_character_set'到输出文件。默认为打开状态,使用--skip-set-charset关闭选项。 mysqldump -uroot -p --host=localhost --all-databases mysqldump -uroot -p --host=localhost --all-databases --skip-set-charset --single-transaction 该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。 本选项和--lock-tables 选项是互斥的,因为LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。 mysqldump -uroot -p --host=localhost --all-databases --single-transaction --dump-date 将导出时间添加到输出文件中。默认为打开状态,使用--skip-dump-date关闭选项。 mysqldump -uroot -p --host=localhost --all-databases mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date --skip-opt 禁用–opt选项. mysqldump -uroot -p --host=localhost --all-databases --skip-opt --socket,-S 指定连接mysql的socket文件位置,默认路径/tmp/mysql.sock mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock --tab,-T 为每个表在给定路径创建tab分割的文本文件。注意:仅仅用于mysqldump和mysqld服务器运行在相同机器上。注意使用--tab不能指定--databases参数 mysqldump -uroot -p --host=localhost test test --tab="/home/mysql" --tables 覆盖--databases (-B)参数,指定需要导出的表名,在后面的版本会使用table取代tables。 mysqldump -uroot -p --host=localhost --databases test --tables test --triggers 导出触发器。该选项默认启用,用--skip-triggers禁用它。 mysqldump -uroot -p --host=localhost --all-databases --triggers --tz-utc 在导出顶部设置时区TIME_ZONE='+00:00' ,以保证在不同时区导出的TIMESTAMP 数据或者数据被移动其他时区时的正确性。 mysqldump -uroot -p --host=localhost --all-databases --tz-utc --user, -u 指定连接的用户名。 --verbose, --v 输出多种平台信息。 --version, -V 输出mysqldump版本信息并退出 --where, -w 只转储给定的WHERE条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。 mysqldump -uroot -p --host=localhost --all-databases --where=” user=’root’” --xml, -X 导出XML格式. mysqldump -uroot -p --host=localhost --all-databases --xml --plugin_dir 客户端插件的目录,用于兼容不同的插件版本。 mysqldump -uroot -p --host=localhost --all-databases --plugin_dir=”/usr/local/lib/plugin” --default_auth 客户端插件默认使用权限。 mysqldump -uroot -p --host=localhost --all-databases --default-auth=”/usr/local/lib/plugin/” 错误处理 1.unknown option '--no-beep' 第一种方法:删除my.ini[client]下的 no-beep 参数; 第二种方法:在 mysqldump 后加--no-defaults参数 。 4.4. 导入导入命令: mysql -uroot -proot -h127.0.0.1 -P3306 tee out.log; mysql> source /root/a.sql mysql> exit本文来自博客园,作者:数据库小白(专注),转载请注明原文链接:https://www.cnblogs.com/xulinforDB/p/17496193.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |