Want to import data from CSV file to MySQL ?
Try Withdata FileToDB, a desktop CSV to MySQL converter for Windows, MacOS, and Linux, Convert CSV to MySQL, Easy and Fast.
- Can run in GUI mode, Step by Step, just a few mouse clicks.
- Can run in Command line, for Scheduled Tasks and Streams.
- Convert locally and privately, avoid uploading large or private CSV file(s) to online services.
Import data from CSV file to MySQL in 4 steps
Choose CSV file -> Set MySQL table -> Preview -> Import
Choose MySQL and logon.

Click “Wizard – 1 File To 1 Table” at task dialog.

Select the “CSV” file type.

then show the wizard.
Step #1. Choose a CSV file.

Step #2. Choose a MySQL table and config fields.

Step #3. Preview data and config “Convert Rows”.

Step #4. Import CSV to MySQL.

Import CSV to MySQL in command line
Save “CSV to MySQL” session, then you can:
- Import CSV to MySQL in Windows command line.
- Import CSV to MySQL in Linux command line.
- Import CSV to MySQL in macOS command line.
Set scheduled tasks for importing CSV to MySQL
You can schedule and automate this converting task by:
- Save session and create .bat (Windows) or .sh (Linux/macOS) file for “CSV to MySQL” conversion.
- Set scheduled task for “CSV to MySQL” conversion.
FAQ
More about Withdata FileToDB – CSV to MySQL converter
CSV → MySQL reference
Type mapping
| Value kind | in CSV | in MySQL |
|---|---|---|
| Int | 1234 | INT |
| Bigint | 9007199254740993 | BIGINT |
| Decimal | 1234.56 | DECIMAL(p,s) |
| Float | 1.234e+10 | DOUBLE |
| Text | quoted only when it contains a comma or a quote | VARCHAR(n) |
| Long text | must be quoted; line breaks inside force multi-line records | LONGTEXT |
| Date | 2026-09-18 | DATE |
| Datetime | 2026-09-18 14:30:00 | DATETIME |
| Binary | not representable - base64 or hex string | LONGBLOB |
| Boolean | TRUE / FALSE, or 1 / 0 depending on the writer | TINYINT(1) |
| JSON | the whole JSON value quoted, with internal quotes doubled | JSON |
Dialect differences
CSV is a file format and MySQL is a database server, so the target has to be told the types the file never carried - the rows below are where the two sides diverge.
| Property | in CSV | in MySQL |
|---|---|---|
| port | — | 3306 |
| identifiers | Double quotes; a literal quote is doubled ("" ) | `backtick` |
| row limit | — | LIMIT n |
| dates | Conventional text: 2026-09-18 or 2026-09-18 14:30:00 | DATETIME, TIMESTAMP, DATE, TIME |
| long text | — | TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT |
| binary | Not supported | BLOB / TINYBLOB / LONGBLOB |
| separator | Comma "," | — |
| encoding | No declaration - UTF-8 works only with a BOM | — |
| typing | None - every field is text | — |
| shape | Flat table, optional header row | Tables of rows and columns |
| ceiling | No formal limit; row count bounded by memory | — |
Command line
| Side | Command |
|---|---|
| MySQL | mysqldump, or mysql -e "SELECT ..." > out.csv |
| MySQL (load) | mysqlimport, or LOAD DATA INFILE |
Convert your data online, free
Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.
