Want to import data from XML file to MySQL ?
Try Withdata FileToDB, a desktop XML to MySQL converter for Windows, MacOS, and Linux, Convert XML 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.
- Import XML to MySQL locally and privately, avoid uploading XML file(s) to online services.
- Support Windows, Linux, and macOS.
Download Withdata FileToDB
Windows 64 bit
Windows 32 bit
Linux .deb (For Debian, Ubuntu) 64 bit
Linux .rpm (For Red Hat, Fedora, SUSE) 64 bit
MacOS 64 bit
Import data from XML file to MySQL
Login to MySQL -> Choose XML file -> Set MySQL table -> Import XML to MySQL
Choose MySQL and logon.
Click “Wizard – 1 File To 1 Table” at task dialog.
Select the “XML” file type.
then show the wizard.
1. Open a XML file.
Support large ( > 4GB ) XML file.
Here is the file’s content.
2. Select a MySQL table and config fields.
3. Preview data will be in MySQL table.
4. Import XML data to MySQL.
View imported data in MySQL table
More about XML to MySQL converter
Download Withdata FileToDB
Windows 64 bit
Windows 32 bit
Linux .deb (For Debian, Ubuntu) 64 bit
Linux .rpm (For Red Hat, Fedora, SUSE) 64 bit
MacOS 64 bit
See Video: Import data from XML file into MySQL table in a few clicks
See also:
XML → MySQL reference
Type mapping
| Value kind | in XML | in MySQL |
|---|---|---|
| Int | <int>1234</int> | INT |
| Bigint | <bigint>9007199254740993</bigint> | BIGINT |
| Decimal | <decimal>1234.56</decimal> | DECIMAL(p,s) |
| Float | <float>1.234e10</float> | DOUBLE |
| Text | <char>text</char> | VARCHAR(n) |
| Long text | <text>multi-line text</text> (entities for & <) | LONGTEXT |
| Date | <date>2026-09-18</date> (xs:date with an XSD) | DATE |
| Datetime | <datetime>2026-09-18T14:30:00Z</datetime> (xs:dateTime) | DATETIME |
| Binary | <blob>base64...</blob> (xs:base64Binary) | LONGBLOB |
| Boolean | <bool>true</bool> | TINYINT(1) |
| JSON | escaped inside an element, or its own sub-tree | JSON |
Dialect differences
XML 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 XML | in MySQL |
|---|---|---|
| port | — | 3306 |
| identifiers | Attribute values in quotes; entities (& < >) for ... | `backtick` |
| row limit | — | LIMIT n |
| dates | Text (xs:date / xs:dateTime when an XSD is in play) | DATETIME, TIMESTAMP, DATE, TIME |
| long text | — | TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT |
| binary | base64Binary / hexBinary inside text | BLOB / TINYBLOB / LONGBLOB |
| separator | Tags, not delimiters | — |
| encoding | Declared in the XML declaration | — |
| typing | None in the markup itself | — |
| shape | Arbitrary tree | Tables of rows and columns |
| ceiling | Whole document is usually parsed into memory | — |
Command line
| Side | Command |
|---|---|
| MySQL | mysqldump, or mysql -e "SELECT ..." > out.csv |
| MySQL (load) | mysqlimport, or LOAD DATA INFILE |
XML to MySQL without the manual work
For batch jobs, large files and scheduling use the XML to MySQL converter — an offline desktop app for Windows, Linux and macOS. Free trial.