一、使用into outfile
和load data infile
导入导出备份数据
这种方法的好处是导出的数据格式可以自己规定,并且导出的是纯数据,不含建表信息。
1.into outfile
导出
SELECT * FROM `metadatakeys` INTO OUTFILE 'D:/outfile.txt'
FIELDS TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
2.load data infile
导入
LOAD DATA INFILE 'D:/outfile.txt' INTO TABLE `metadatakeys`
FIELDS TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
二、使用mysqldump
导出数据库
1.导出整个数据库
mysqldump -u用户名 -p密码 数据库名 > 导出要保存的文件名
mysqldump -uroot -p123456 database > database.dump
3.导出结构不导出数据
mysqldump -d -u用户名 -p密码 数据库名 > 导出的文件名
mysqldump -d -uroot -p123456 database > database.dump
4.导出数据不导出表结构
mysqldump -t -u用户名 -p密码 数据库名 > 导出的文件名
mysqldump -t -uroot -p123456 database > database.dump
5.导入数据
mysql 数据库名 < 文件名
三、mysqldump
参数说明
1. --all-databases , -A
导出全部数据库。
mysqldump -uroot -p --all-databases
2.--all-tablespaces , -Y
导出全部表空间。
mysqldump -uroot -p --all-databases --all-tablespaces
3.--no-tablespaces , -y
不导出任何表空间信息。
mysqldump -uroot -p --all-databases --no-tablespaces
4.--add-drop-database
每个数据库创建之前添加drop数据库语句。
mysqldump -uroot -p --all-databases --add-drop-database
5.--add-drop-table
每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项)
mysqldump -uroot -p --all-databases (默认添加drop语句)
mysqldump -uroot -p --all-databases –skip-add-drop-table (取消drop语句)
6.--add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(默认为打开状态,使用--skip-add-locks取消选项)
mysqldump -uroot -p --all-databases (默认添加LOCK语句)
mysqldump -uroot -p --all-databases –skip-add-locks (取消LOCK语句)
7.--allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
mysqldump -uroot -p --all-databases --allow-keywords
8.--apply-slave-statements
在'CHANGE MASTER'前添加'STOP SLAVE',并且在导出的最后添加'START SLAVE'。
mysqldump -uroot -p --all-databases --apply-slave-statements
9.--character-sets-dir
字符集文件的目录
mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets
10.--comments
附加注释信息。默认为打开,可以用--skip-comments取消
mysqldump -uroot -p --all-databases (默认记录注释)
mysqldump -uroot -p --all-databases --skip-comments (取消注释)
11.--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
12.--compact
导出更少的输出信息(用于调试)。去掉注释和头尾等结构。可以使用选项:--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys
mysqldump -uroot -p --all-databases --compact
13.--complete-insert, -c
使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。
mysqldump -uroot -p --all