Это простой способ импортировать содержимое файла .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
1
задан 13 April 2017 в 15:23

2 ответа

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

1
ответ дан 25 May 2018 в 17:17

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

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

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

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

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

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

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

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

1
ответ дан 25 May 2018 в 17:17

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

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