carta
mysql2dbf(1)

mysql2dbf1

Convert between xbase and mysql databases

Part of dbf2mysql(1).

Usage

dbf2mysql [-v [v]] [-f] [{-u | -l | -L}] [-n] [-o field [,field]] [-e conversion-file] [-s old-name=new-name [, old-name=new-name]] [-i field [,field]] [-d database] [-t table] [-c [c]] [-p primary] [-h host] [-F] [-q] [-r] [-x] [-C charset] [-P password] [-U user] dbf-file

mysql2dbf [-v [v]] [{-u | -l}] -d database -t table [-h host] [-q query] [-P password] [-U user] dbf-file

Overview

dbf2mysql takes an xBase file and sends queries to an MySQL server to insert it into an MySQL table.

mysql2dbf dumps a MySQL table to a dbf file.

Options

-v

Produce some status output.

-vv

More verbose.

-vvv

Even more verbose: produce a progress report.

-f

Translate all field names in the xBase file to lowercase.

-u

Translate all text in the xBase file to uppercase.

-l

Translate all text in the xBase file to lowercase.

-L

Use LOCAL INFILE for table loading in MySQL.

-n

Allow NULL fields: 'NOT NULL' will be not added in table creation statement.

-o field[,field[,...]]

List fields to insert into MySQL database. Primary use is to ease import of complex dbf files where we want only few fields. NOTE: -o is processed before substitution (-s), so you have to use dbf field names here.

-e conversion-file

Specify file for CHAR fields conversion. File format is: 1st line: number of characters to convert (number of lines). Further lines: <char_to_convert> <char_after_conversion>.

-s old-name=new-name[,old-name=new-name[,...]]

Takes a list of field name/new field name pairs. Primary use is to avoid conflicts between field names and MySQL reserved keywords. When the new field name is empty, the field is skipped in both the CREATE clause and the INSERT clauses, i.e. it will not be present in the MySQL table. For example:

-s ORDER=HORDER,REMARKS=,STAT1=STATUS1
-i field[,field[,...]]

List fields to be indexed. MySQL field names should be used here.

-d database

Select the database to insert into. Default is 'test'.

-t table

Select the table to insert into. Default is 'test'.

-c[c]

Create table if one doesn't exist already. If the table already exists, drop it and build a new one. The default is to insert all data into the named table. If -cc is specified, no records will be inserted.

-p primary

Select the primary key. You have to give the exact field name.

-h host

Select the host to insert into. Untested.

-F

Fixed length records. (By default CHAR is saved as VARCHAR.)

-q

dbf2mysql: "Quick" mode. Inserts data via temporary file using 'LOAD DATA INFILE' MySQL statement. This increased insertion speed on my PC 2-2.5 times. Also note that during whole 'LOAD DATA' affected table is locked.

mysql2dbf: Specify custom query to use.

-r

Trim trailing and leading whitespace from CHAR type fields data.

-x

Start each table with _rec and _timestamp fields.

-C charset

Specify the charset to use in table.

-P password

Specify password on the MySQL server.

-U user

Specify user on the MySQL server.

Disclaimer

The authors do not accept any responsibility for possible damage you get as result of using this program.

History

  • Debian 13 (Trixie) to Debian 11 (Bullseye): the text shown here
  • Debian 10 (Buster) to Debian 3.0 (Woody)
  • Debian 2.1 (Slink) to Debian 2.0 (Hamm)

-F since Debian 3.0 (Woody); -L since Debian 11 (Bullseye); -c since Debian 3.0 (Woody); -f since Debian 3.0 (Woody); -l since Debian 3.0 (Woody); -n since Debian 3.0 (Woody); -p since Debian 3.0 (Woody); -q since Debian 3.0 (Woody); -r since Debian 3.0 (Woody); -u since Debian 3.0 (Woody); -v since Debian 3.0 (Woody); -vv since Debian 3.0 (Woody); -vvv since Debian 3.0 (Woody); -x since Debian 3.0 (Woody).

Bugs

mysql2dbf can't write MEMO files at this time.

Possibly incorrect field lengths for REAL numbers.

Authors

Originally written by Maarten Boekhold <[email protected]>, Oct 1995.

Patched for MySQL by Michael Widenius <[email protected]>, 3 Nov 1996.

Manual page written for Debian GNU/Linux from README by Heiko Schlittermann <[email protected]>, Aug 1997; updated by Matej Vela <[email protected]>, Nov 2001. New options available added by Francesco P Lovergine <[email protected]>, Dec 2020.

From dbf2mysql 1.14a-7+b1 in Debian 13 (Trixie). Parsed by carta from the page's man source.