Это простой способ импортировать содержимое файла .dbf в MySQL в терминале

У меня есть эти файлы:

/referencias$ ls | grep .dbf
avenidas.dbf
barrios.dbf
borde.dbf
construcciones.dbf
espejo_de_agua.dbf
manchas_urbanas.dbf
manzanas.dbf
plazas.dbf

Я хочу сделать, но в терминале. Любая идея?

благодаря roadmr : это, как я это сделал.

dbf2mysql -vv -q -h localhost -P my.password -U root avenidas.dbf -d avenidas -c

dbf-file: avenidas.dbf - dBASE III w/o memo file, MySQL-dbase: avenidas, MySQL-table: test
Number of records: 60
Name             Length Display  Type
-------------------------------------
NMBRE_COMP          150     0     C
TIPO                  4     0     C
CODIGO               16     0     N
LOAD DATA LOCAL INFILE '/tmp/d2myCO7f7O' REPLACE INTO table test fields terminated by ',' enclosed by ''''

после этого проверил на MySQL.

# mysql -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 47
Server version: 5.1.58-1ubuntu1 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> USE avenidas;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW tables;
+--------------------+
| Tables_in_avenidas |
+--------------------+
| test               |
+--------------------+
1 row in set (0.01 sec)

mysql> DESCRIBE test;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| NMBRE_COMP | varchar(150) | NO   |     | NULL    |       |
| TIPO       | varchar(4)   | NO   |     | NULL    |       |
| CODIGO     | int(11)      | NO   |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> \q
Bye
4
задан 13 April 2017 в 15:23

3 ответа

В репозиториях программного обеспечения Ubuntu есть инструмент dbf2mysql. Я никогда не использовал его, но из описания он, кажется, делает то, что вы хотите?

0
ответ дан 13 April 2017 в 15:23

Важно отметить, что, как указано на странице man:

mysql2dbf не может записывать файлы MEMO в настоящее время.

На днях я конвертировал один файл, используя dbf2mysql, и подумал, что мои проблемы с этим прошли. К сожалению, я потратил следующие 6 часов, пытаясь решить проблему с одним из моих самых больших файлов, который не был записан в MySQL.

Не было никаких ошибок, просто не напишу. Я прошел через множество шагов, включая изменение размера буфера и т. Д., Но безрезультатно, прежде чем понял, что это MEMO-файл.

1120 Я новичок во всем этом, поэтому, чтобы помочь другим новичкам, я открою вам секрет. Единственный способ узнать, что вы имеете дело с файлом MEMO, созданным Visual FoxPro (насколько я знаю, в любом случае), состоит в том, что у него есть 3 сопутствующих файла, заканчивающиеся .cdx (которые у них всех есть), .dbt и .fpt.

  • .dbf = Конечно, файл базы данных, который вы пытаетесь преобразовать.
  • .cdx = Тип файла составного индекса.
  • .dbt = Содержит сам текст MEMO, но его нельзя открыть в текстовом редакторе.
  • .fpt = Содержит запись заголовка MEMO.

Мне повезло, что у меня был только один с двумя из трех сопутствующих файлов, .fpt и .cdx ... которые конвертировали. Таким образом, в процессе удаления, это файл .fpt или запись заголовка MEMO, которая является файлом-нарушителем. К сожалению, простое перемещение этого файла из каталога не работает.

Я уверен, что есть способ обойти это, к сожалению, я пока не знаю, какой именно. Однако, когда (и я имею в виду «когда») я разрешаю это, я опубликую это здесь.

0
ответ дан 13 April 2017 в 15:23

Я нашел пакет «dbf2mysql»:

Эта программа берет файл xBase и отправляет запросы на сервер MySQL, чтобы вставить его в таблицу MySQL и наоборот.

Я сам не пробовал, но, похоже, он сделает то, что тебе нужно. Для установки (и так как вам, кажется, удобно с терминалом):

sudo apt-get install dbf2mysql

это man-страница .

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: