通常,MySQL导出导入数据通过mysqldump完成就够了,--where参数也能够选择导出部分数据。但有些情况下,我们需要对数据做些加工,比如增加一个ID字段再导入(把多个站点的数据汇总统计),那么原生的SQL语句就不好处理。CSV格式会是不错的选择。
导出语句:
SELECT *
FROM mytable
WHERE 1
INTO OUTFILE '/tmp/t.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
导入语句:
LOAD DATA INFILE '/tmp/t.csv'
INTO TABLE mytable
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY ‘\n’;
然而,这个方法需要需要赋予数据库用户文件的权限(GRANT FILE ON *.* TO 'user'@'localhost';),这个权限通常不是默认有的。
评论