Access
MySQL

Access to MySQL Converter

Tables, keys, and rows from an Access file into MySQL - once, or on a schedule while the Access application stays in use.

Version
5.4.0
Release Date
Oct. 25, 2026
Size
126.5 MB
Platform
Windows 10 or later

Rather not run it yourself?

Let us do the migration →

Move a Microsoft Access database into MySQL without exporting tables one by one. DBConvert opens the Access file, creates the MySQL tables, keys, and indexes, and copies every row straight into the server.

  • Reads .accdb and .mdb files, including files protected by a database password.
  • Writes to a MySQL server or to a MySQL dump file.
  • Runs on Windows as a desktop application. The Access file never leaves your machine.
  • The same download converts MySQL back into Access.

What the Access side needs

DBConvert reads Access through Microsoft's own database engine. Check these before the first run.

The 64-bit Access Database Engine

Microsoft's free download, not part of the DBConvert installer. Without it, the connection step says so and links to it.

Access 2000 format or later

Access 97 files cannot be opened. Open the file in Access and save it in a newer format first.

A database password, not a workgroup

A file with a database password opens with that password. Workgroup security (.mdw files) is not supported.

Convert once, or keep MySQL in step with Access

Both modes are part of the same DBConvert application.

One-time conversion

Create the MySQL schema and load the selected tables. Load a test database first and check the result before the application moves to MySQL.

Synchronization

Keep using the Access file while MySQL is tested. A synchronization job carries inserts, updates, and deletes across, matching rows by primary key. Save it and run it on a schedule with --run-job; see how synchronization works.

How Access types map to MySQL

Exact numbers stay exact, and text and binary values arrive whole. Review or change the target type per column before the run.

In Access DBConvert default in MySQL What needs attention
Currency, Decimal Currency becomes DECIMAL(19,4). Decimal keeps its precision and scale. Nothing: values arrive to the last digit, not as floating point.
AutoNumber, Byte, Integer, Long Integer AutoNumber becomes an AUTO_INCREMENT INT. Byte becomes TINYINT UNSIGNED, Integer SMALLINT, Long Integer INT. Existing key values are kept. New rows in MySQL continue after the highest one.
Short Text, Long Text (Memo) VARCHAR(n) at the Access length, and LONGTEXT. Create the MySQL database as utf8mb4 so non-Latin text arrives unchanged.
Date/Time, Yes/No DATETIME and TINYINT(1). Dates from the year 1000 to 9999 arrive as they are. Access has no empty Yes/No, so MySQL gets 0 or 1.
OLE Object, Binary, Replication ID A long binary column, VARBINARY(n), and the GUID as text. The application must read a GUID as a string in MySQL.
Attachment, multi-value fields Text: the values joined by ;, or the attached file names. The attached files themselves are not copied. The log names every such column.
Default values Numbers and text are kept. Now() and Date() become CURRENT_TIMESTAMP. Other expression defaults are dropped. Set them in MySQL if the application relies on them.

Primary keys, unique and plain indexes, and relationships arrive as MySQL keys and foreign keys. Table and column names keep their spaces.

Queries, forms, reports, and VBA stay in Access

DBConvert moves tables, data, indexes, and relationships. Saved queries, forms, reports, macros, and VBA code are not converted; rebuild them as MySQL views or in the new application.

Supported versions and services

Access

  • MS Access .accdb, and .mdb in Access 2000 format or later
  • Database password; the 64-bit Microsoft Access Database Engine is required

MySQL

  • MySQL 5.x, 8.x; MariaDB; Percona Server
  • Amazon RDS / Aurora MySQL, Azure Database for MySQL, Google Cloud SQL

How to migrate Access to MySQL

1

Setup: connect Access and MySQL

Pick Convert or Sync, then choose the source and destination connections side by side on one screen. A connection is saved once and reused by every job.

The Setup step in DBConvert: the mode, the Access source and MySQL destination side by side, and the job name

Sync keeps an existing MySQL database up to date with Access: each run carries only the inserts, updates and deletes since the last one.

The Setup step in Sync mode for Access to MySQL: how changes are detected and the direction

Access source

Select the source .accdb or .mdb file and enter its database password if it has one. Reading Access needs the 64-bit Microsoft Access Database Engine.

Look inside the Access file first

To see what an .mdb or .accdb file holds before converting it, open it in the free MDB and ACCDB Viewer: tables with their Access types, relationships as an ER diagram, saved queries and read-only SQL, in the browser, with no upload and no Access installed.

Open the MDB viewer · VS Code extension

MySQL target

Use the MySQL connection guide for local MySQL or MariaDB, or Amazon RDS / Aurora for MySQL, Azure Database for MySQL, or Google Cloud SQL for MySQL. Create the target schema as utf8mb4.

2

Tables & mapping: see every MySQL type before a row moves

Pick the tables, then open one: each Access column shows the MySQL type it becomes. Change a type or a name in place; the line at the bottom names anything that would fail.

Tables and mapping for Access to MySQL: the table list and one table's columns with their MySQL types
3

Execution: start it, and the job is saved

Review what the run will do, start it, and read the log as it goes. The job stays in the list to run again or put on a schedule.

A finished Access to MySQL conversion: the summary and the operation log

Every option, in the guide

Naming rules, table options, row filters, scheduling and the command line work the same for every database pair, so they live in one place.

Move Access data into MySQL

Download the current build and run the first job against your own database.

Windows Windows 10 or later · 126.5 MB