MySQL 批量读取 CSV 文件内容是指将 CSV 文件中的数据导入到 MySQL 数据库中。CSV(Comma-Separated Values)是一种常见的数据交换格式,每行代表一条记录,字段之间用逗号分隔。MySQL 提供了多种方法来批量导入 CSV 文件,如 LOAD DATA INFILE
语句。
LOAD DATA INFILE
语句:这是 MySQL 提供的原生方法,可以直接从文件系统导入 CSV 文件。pandas
库,可以先读取 CSV 文件,然后通过 SQL 语句批量插入到 MySQL 中。mysqlimport
、mysqldump
等。LOAD DATA INFILE
时提示“File not found”?原因:MySQL 用户可能没有权限访问该文件,或者文件路径不正确。
解决方法:
chmod
和 chown
命令调整文件权限。secure-file-priv
参数,允许 MySQL 访问特定目录。-- 示例:导入 CSV 文件
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE your_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
原因:CSV 文件的编码与 MySQL 数据库的编码不匹配。
解决方法:
CHARACTER SET utf8
。-- 示例:指定字符集导入 CSV 文件
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE your_table
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
原因:可能是数据中包含空行、注释行或格式错误的数据行。
解决方法:
IGNORE
或 REPLACE
选项处理重复数据。ERROR
文件记录导入错误的数据行。-- 示例:忽略错误行并记录到错误文件
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE your_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
ERRORFILE '/path/to/error_file.err';
通过以上方法,你可以高效地将 CSV 文件中的数据批量导入到 MySQL 数据库中,并解决常见的导入问题。
领取专属 10元无门槛券
手把手带您无忧上云