MySQL导入CSV文件是将数据从CSV(逗号分隔值)格式的文件导入到MySQL数据库中的过程。CSV文件是一种常见的数据交换格式,易于生成、阅读和处理。
LOAD DATA INFILE
命令LOAD DATA INFILE 'path/to/your/file.csv'
INTO TABLE your_table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; -- 如果CSV文件包含标题行
import mysql.connector
import csv
# 连接到MySQL数据库
db = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
cursor = db.cursor()
# 打开CSV文件
with open('path/to/your/file.csv', newline='') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
next(reader) # 跳过标题行
for row in reader:
cursor.execute("INSERT INTO your_table_name (column1, column2, column3) VALUES (%s, %s, %s)", row)
# 提交事务
db.commit()
# 关闭连接
cursor.close()
db.close()
原因:指定的文件路径不正确或文件不存在。
解决方法:检查文件路径是否正确,并确保文件存在。
原因:MySQL用户没有足够的权限读取文件或写入目标表。
解决方法:确保MySQL用户具有适当的权限。可以使用以下命令授予权限:
GRANT FILE ON *.* TO 'yourusername'@'localhost';
原因:CSV文件中的数据格式与目标表的列不匹配。
解决方法:检查CSV文件中的数据格式,并确保与目标表的列匹配。可以使用LOAD DATA INFILE
命令的FIELDS TERMINATED BY
、ENCLOSED BY
和LINES TERMINATED BY
选项来指定数据的格式。
原因:CSV文件的编码与MySQL数据库的编码不匹配。
解决方法:确保CSV文件的编码与MySQL数据库的编码一致。可以在LOAD DATA INFILE
命令中使用CHARACTER SET
选项指定编码:
LOAD DATA INFILE 'path/to/your/file.csv' CHARACTER SET utf8mb4
INTO TABLE your_table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
Lzychars terminated by '
IGNORE 1 ROWS;
领取专属 10元无门槛券
手把手带您无忧上云