从 CSV 导入到备份恢复,掌握文件操作是 DBA 与开发的必备技能。本文覆盖 LOAD DATA、SELECT INTO OUTFILE、SOURCE、重定向、tee、mysqldump 全场景。
LOAD DATA INFILE 'D:/myCodes/test.csv'
INTO TABLE member
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES; -- 跳过表头
注意文件编码需与表字符集一致(如 UTF-8)。
SELECT * INTO OUTFILE 'D:/myCodes/out.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
FROM member;
要求 MySQL 拥有目标目录写权限,且 secure_file_priv 允许该路径。
SOURCE D:/myCodes/test.sql -- 无需分号
mysql test -uroot -p -e "SOURCE D:/myCodes/test.sql"
可封装为 .bat/.sh 实现自动化部署。
mysql -uroot -p > D:/myCodes/log.txt
mysql -uroot -p -e "SOURCE D:/myCodes/test.sql" > D:/myCodes/log.txt
tee D:/myCodes/teeLog.txt
USE home;
SELECT * FROM customer;
notee;
EXIT;
tee 同时输出到屏幕与文件,适合交互式审计。
mysqldump -u root -p home --default-character-set=utf8 > D:/myCodes/home_back.sql
mysqladmin -u root -p CREATE home1
mysql -u root -p home1 --default-character-set=utf8 < D:/myCodes/home_back.sql
--single-transaction --quick --hex-blobmysqldump ... | gzip > backup.sql.gz