mysql的导入导出操作
mysqldump工具基本用法
此方法不适用于大数据备份
备份所有数据库
mysqldump -u root -p --all-databases > all_database_sql
备份mysql数据库
mysqldump -u root -p --databases mysql > mysql_database_sql
备份指定的多个数据库
mysqldump -u root -p --databases mydb db2 > mydb.sql
备份mysql数据库下的test表
mysqldump -u root -p mysql test > test_table
如果不用--databases选项,在后期进行数据还原操作时,如果该数据库不存在,必须先创建该数据库;而在例子3指定多个数据库时,必须要加--databases参数,否则db2会被认为是mydb库的表。
把备份的所有数据文件还原:
mysql -u root -p < all_database_sql,这里不需要指定库,因为是全部数据库
mysql -u root -p mysql < mysql_database_sql #这里就需要指定是mysql库了
导出纯文本文件
在某些情况下,为了一些特定的目的,经常需要将表里的数据导出为某些符号分割的纯数据文本,而不是 SQL 语句,因为LOAD DATA 的加载速度比普通的 SQL 加载要快 20 倍以上
方法 1:使用 SELECT ...INTO OUTFILE ...命令来导出数据
mysql> SELECT * FROM tablename INTO OUTFILE 'target_file' [option];
其中 option 参数可以是以下选项:
fields terminated by '字符' 字段分隔符,默认字符为制表符'\t'
fields [optionally] enclosed by '单字符' 字段引用符,加上optionally后在数字类型上不会有引用符号
fields escaped by '单字符' 转义字符,默认为'\'
lines starting by '字符' 每行前都加此支付,默认为空
lines terminated by '字符' 行结束符,默认为'\n'
例子1,将 test 表中数据导出为数据文本,其中,字段分隔符为“,”,每个字段用双引号引用起来,记录结束符为回车符(默认如此,可以不写)