Ответ 1
Я думаю, вам не хватает предложение ENCLOSED BY
LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';
И укажите полный путь csv file
У меня есть файл CSV. Он содержит 1,4 миллиона строк данных, поэтому я не могу открыть этот файл csv в Excel, потому что его предел составляет около 1 миллиона строк.
Поэтому я хочу импортировать этот файл в workbench MySQL. Этот файл csv содержит столбцы типа
"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"
Я пытаюсь создать таблицу в workbench MySQL с именем "dummy", содержащую такие столбцы, как
ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp.
Файл CSV имеет имя model.csv
. Мой код в верстаке выглядит следующим образом:
LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';
но я получаю сообщение об ошибке, например model.CSV file not found
Я думаю, вам не хватает предложение ENCLOSED BY
LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';
И укажите полный путь csv file
Если у вас есть меньший набор данных, способ его достижения с помощью графического интерфейса:
В навигаторе под SCHEMAS щелкните правой кнопкой мыши вашу схему/базу данных и выберите "Мастер импорта данных таблицы"
Работает и для mac.
В настоящий момент невозможно импортировать CSV (с использованием MySQL Workbench) на всех платформах и не рекомендуется, если указанный файл не находится на том же хосте, что и хост сервера MySQL.
Однако вы можете использовать mysqlimport.
Пример:
mysqlimport --local --compress --user=username --password --host=hostname \
--fields-terminated-by=',' Acme sales.part_*
В этом примере mysqlimport
указывается загрузка всех файлов с именем "sales" с расширением, начинающимся с "part_". Это удобный способ загрузки всех файлов, созданных в примере "split". Используйте параметр --compress для минимизации сетевого трафика. Опция -fields-terminated-by = ',' используется для CSV файлов, а опция -local указывает, что входящие данные находятся на клиенте. Без опции -local MySQL будет искать данные на узле базы данных, поэтому всегда указывайте опцию -local.
В документация AWS RDS есть полезная информация по этому вопросу.
Если сервер находится на удаленном компьютере, убедитесь, что файл находится на удаленном компьютере, а не на вашем локальном компьютере.
Если файл находится на том же компьютере, на котором находится сервер mysql, убедитесь, что пользователь mysql имеет разрешения на чтение/запись файла или копирование файла в каталог схемы mysql:
В моем случае в ubuntu это было:/var/lib/mysql/db_myschema/myfile.csv
Кроме того, не по отношению к этой проблеме, но если у вас есть проблемы с новыми строками, используйте sublimeTEXT для изменения окончаний строки в формате WINDOWS, сохраните файл и повторите попытку.
Кажется немного сложным, так как это действительно беспокоило меня в течение долгого времени.
Вам просто нужно открыть таблицу (Рик щелкнуть мышью по "Select Rows-Limit 10000" ), и вы откроете новое окно. В этом новом окне вы найдете значок импорта. Затем делаются