通过CSV将50多万条记录快速导入MySQL

通过CSV将50多万条记录快速导入MySQL,mysql,csv,Mysql,Csv,我有一个CSV文件,大约有657000条记录。 我想把它插入我的MySQL数据库 <?php $handle = fopen("tdvddir.csv", "r"); $data = fgetcsv($handle, 1000, ","); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { echo "INSERT INTO `tdvddir` VALUES ('', '{$data[0]}', '{$data[1]

我有一个CSV文件,大约有657000条记录。
我想把它插入我的MySQL数据库

<?php
$handle = fopen("tdvddir.csv", "r");
$data = fgetcsv($handle, 1000, ",");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
    echo "INSERT INTO `tdvddir` VALUES ('', '{$data[0]}', '{$data[1]}', '{$data[2]}', '{$data[3]}', '".addslashes($data[4])."');\n";
}
fclose($handle);
?>

php csv-sql.php > temp.sql
nohup mysql --user=root --database=data --password=password < temp.sql &
mysql——版本



这是在我的Ubuntu 14.04笔记本电脑上,而不是在任何服务器上。

我可以看到——本地infle工作得很好——谢谢——除了CSV文件有657009行,我读到的最后一个ID值是656575。MySQL报告的错误误导了IMHO。因为它不是关于版本控制,而是配置…关于计数不匹配,你应该考虑依靠一些索引(唯一密钥)来查看复制…或者插入错误…您可能会喜欢我的演示文稿
load data local infile 'tdvddir.csv' into table data.tdvddir
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(col2, col3, col4, col5, col6);

ERROR 1148 (42000): The used command is not allowed with this MySQL version
mysql  Ver 14.14 Distrib 5.5.60, for debian-linux-gnu (x86_64) using readline 6.3