逻辑数据导出(备份)
用法:
select xxx into outfile '/path/file' from table_name; mysql>select * into outfile '/back/emp3.sql' from emp;
无论是什么存储引擎,本身是一种数据导出的方法,同时可以用来辅助备份,它可以对一个表的其中一列或者某几列做备份,如果是多列的话用逗号隔开
逻辑数据导入(恢复)
方法一:
load data local infile '/path/file' into table table_name; mysql> load data local infile '/back/emp.sql' into table emp;
说明:该方法要求在编译数据库时要加上--enable-local-infile参数才可以使用
方法二:
# mysqlimport dbname /path/filename
说明:filename 必须和数据库里面表名一样
综合示例
例一
# 创建表 mysql> create table t1(id int, name varchar(32)); # 插入数据 mysql> insert into t1 values(1,'haha'),(2,'wowo'),(3,'lili'),(4,'yoyo'); # 查看表 mysql> select * from t1; +------+------+ | id | name | +------+------+ | 1 | haha | | 2 | wowo | | 3 | lili | | 4 | yoyo | +------+------+ # 备份 mysql> select id, name into outfile '/tmp/back_mysql' from t1; Query OK, 4 rows affected (0.01 sec)
查看备份
[root@Admin ~]# cat /tmp/back_mysql 1 haha
2 wowo
3 lili
4 yoyo
删除数据并测试
mysql> delete from t1 where id=3; Query OK, 1 row affected (0.00 sec) mysql> select * from t1; +------+------+ | id | name | +------+------+ | 1 | haha | | 2 | wowo | | 4 | yoyo | +------+------+ 3 rows in set (0.00 sec) mysql> load data local infile '/tmp/back_mysql' into table t1; Query OK, 4 rows affected (0.00 sec) Records: 4 Deleted: 0 Skipped: 0 Warnings: 0 mysql> select * from t1; +------+------+ | id | name | +------+------+ | 1 | haha | | 2 | wowo | | 4 | yoyo | | 1 | haha | | 2 | wowo | | 3 | lili | | 4 | yoyo | +------+------+ 7 rows in set (0.00 sec)