MySQL
SQL Server

MySQL to SQL Server Converter

Migrate MySQL or MariaDB into SQL Server with schema conversion, type mapping, and optional two-way sync between on-prem and Azure SQL.

MySQL to SQL Server migration moves an open-source MySQL-family database into the Microsoft data platform.

The engineering work is in reconciling MySQL's relaxed conventions with SQL Server's stricter catalog and T-SQL model.


What DBConvert does on this path: handles the database move as a repeatable desktop workflow:

  • Reads MySQL, MariaDB, or Percona Server catalogs from on-prem servers, Amazon RDS / Aurora MySQL, Azure Database for MySQL, or Google Cloud SQL.
  • Maps MySQL data types to SQL Server equivalents and recreates indexes and foreign keys.
  • Transfers rows in parallel into SQL Server 2008–2022, SQL Server Express, Azure SQL, or Amazon RDS for SQL Server.

What it does not do: MySQL stored procedures, functions, triggers, and MySQL-specific built-ins are not translated to T-SQL automatically. Treat that code as a separate engineering task.

Which tool: DBConvert or DBSync?

DBConvert for MySQL → SQL Server

One-time conversion. Connect MySQL / MariaDB / RDS / Aurora, connect SQL Server / Express / Azure SQL / RDS for SQL Server, select objects, review the type mapping, and run through the desktop wizard.

DBSync for MySQL ↔ SQL Server

The separate tool when both databases must stay aligned after the first transfer: one-way sync, bi-directional sync, scheduled runs, or trigger-based repeat sync.

Both are Windows desktop tools with GUI and CLI execution. They are not log-based CDC products — see the alternatives section for that path.

Need more context? Compare DBConvert and DBSync side by side →

How DBConvert handles the MySQL → SQL Server differences

MySQL and SQL Server differ in identity behavior, type mapping, schemas vs databases, and server-side code. DBConvert maps most of those differences in the wizard with sensible defaults that you can review or override per table; MySQL routines and application SQL are the two items that still need a human.

  • Identity columns. Maps MySQL AUTO_INCREMENT to SQL Server IDENTITY and reseeds the target with DBCC CHECKIDENT above the loaded maximum key value — so the application's next insert does not collide.
  • Type mapping. Treats MySQL TINYINT(1) as a SQL Server BIT candidate in the type-mapping review (or keeps it TINYINT when it stores integer codes), maps utf8mb4 VARCHAR to NVARCHAR, DATETIME(6) to DATETIME2(6), time-zoned TIMESTAMP to DATETIMEOFFSET, and routes JSON to NVARCHAR(MAX) with SQL Server's JSON functions as the access path. ENUM / SET become a lookup table or CHECK constraint per your policy.
  • Schemas and identifiers. Rewrites MySQL backtick-quoted names (`order`) into SQL Server bracket form ([order]), and lands objects in dbo by default — or in a custom schema if you pick that policy in the wizard before the load.
  • Views translation — two-way. Translates view definitions and supported queries between MySQL and SQL Server in both directions during the migration — one of the three native two-way-translation pairs (MySQL ↔ SQL Server, MySQL ↔ Oracle, SQL Server ↔ Oracle).
  • Stored procedures, triggers, and functions — outside DBConvert's scope. DBConvert's migration covers tables (with their fields, types, defaults, and indexes), views, and foreign keys. MySQL stored procedures, functions, and triggers stay in the source and are rewritten manually in T-SQL — T-SQL has a different procedural model (no DELIMITER, different error handling, different cursors). Typically a small fraction of the schema, but the one item the tool does not handle.
  • Application SQL portability. MySQL-specific syntax (LIMIT/OFFSET, INSERT...ON DUPLICATE KEY UPDATE, GROUP_CONCAT, IFNULL, backtick identifiers, collation-driven case-insensitive LIKE) does not run unchanged on SQL Server. DBConvert moves the schema and data; the application SQL layer is its own task — usually a search-and-replace pass plus a test cycle.

Why teams migrate MySQL workloads to SQL Server

Microsoft stack consolidation

Pulling the database into the same environment as .NET applications, SSIS pipelines, Power BI dashboards, and SQL Server Agent jobs removes a heterogeneous link and lets the tooling that already exists in the organization manage the data tier too.

Power BI and analytics integration

Power BI Direct Query and Tabular models hit SQL Server with a first-class native connector; MySQL requires an ODBC bridge and often loses query-folding performance. Reporting-heavy projects often justify the move on this alone.

Enterprise DBA tooling

SQL Server Management Studio, SQL Profiler, SSRS reporting, Always On availability groups, and the broader DBA ecosystem are the daily tools many enterprise data teams already standardize on.

Azure SQL managed tier

When the rest of the application stack is already in Azure, Azure SQL Database or Azure SQL Managed Instance keeps identity (Microsoft Entra ID), auditing, backup, and monitoring on the same control plane as everything else.

DBConvert vs SSMA, AWS DMS, and other options

The MySQL → SQL Server tool space splits into a few practical categories. The right choice depends on whether you need a one-time move, cloud cutover, or repeat sync afterwards.

Route Where it fits Where it falls short
SSMA for MySQL Microsoft Migration Assistant, free One-time bulk conversion in a single maintenance window when ongoing sync is not needed. No phased cutover with both sides running in parallel, no post-load alignment, Microsoft-direction only (no reverse SQL Server → MySQL).
Manual scripting mysqldump + hand T-SQL Small, simple schemas where you have the time and expertise. Scales poorly with many tables, non-trivial type mappings, complex constraints, or repeat runs.
Online SQL converters Quick syntax checks on a few DDL statements between dialects. Not a fit for production data, live database connections, index / foreign-key recreation, or repeat runs.
AWS DMS log-based CDC, AWS-native Target is Amazon RDS for SQL Server and the rest of the stack lives in AWS. Full-load + ongoing replication when MySQL must stay live until cut-over. Coupled to AWS endpoints and AWS billing; not useful when the target is outside AWS.
DBConvert / DBSync commercial GUI + sync Visual wizard with object selection, mapped schema + data transfer to on-prem and managed cloud SQL Server endpoints, both directions (MySQL ↔ SQL Server), DBSync for staged cut-over, vendor email support. Commercial license; desktop tool (Windows). For continuous log-based CDC on AWS, AWS DMS is the native fit.

What DBConvert and DBSync actually do

1

Wizard with object selection

Connect source and target through the desktop wizard, choose schemas, tables, columns, and row filters, review the type mapping, then run. The session is saved and can be re-run from the scheduler or the command line.

2

Parallel migration engine

The transfer splits each large table into ranges and copies them concurrently across multi-core CPUs. For tables in the millions-of-rows range, this is the difference between an overnight run and a coffee break.

3

Bi-directional synchronization (DBSync)

When the cut-over has to be staged — the source database stays live while the target catches up — DBSync replays Insert / Update / Delete one-way or bi-directionally, with a trigger-based mode that avoids full-table compares on subsequent runs. Separate desktop product, same connectors. Use it to keep both databases matched during a step-by-step cut-over, not as a CDC replacement.

Supported versions

  • MySQL 5.x, 8.x; MariaDB; Percona Server
  • Amazon RDS / Aurora MySQL, Azure Database for MySQL, Google Cloud SQL
  • SQL Server 2008–2022, including Express editions
  • Azure SQL Database and Amazon RDS for SQL Server
  • SQL Server schemas (dbo, custom schemas)
  • Windows authentication or SQL authentication

Supported in this path

Source MySQL
Target SQL Server
MySQL MariaDB Percona Server for MySQL Amazon RDS / Aurora MySQL Azure Database for MySQL Google Cloud SQL for MySQL Microsoft SQL Server SQL Server Express Azure SQL Database Amazon RDS for SQL Server

Using MySQL to SQL Server Tools

When launching the DBConvert or DBSync application in GUI mode, it guides you through the steps to start database migration or synchronization:

1

Connect to MySQL source database

Specify the username/password and host/port parameters if your source database requires login credentials.

Connect to MySQL source database from DBConvert

MySQL source

Use the MySQL connection guide for MySQL, MariaDB, Percona, Amazon RDS / Aurora, Azure Database for MySQL, or Google Cloud SQL.

2

Connect to SQL Server destination database

Specify parameters for the destination database similar to the source, defining connection settings and username/password pairs.

Connect to SQL Server target database from DBConvert

SQL Server target

Use SQL Server connection settings. Azure SQL requires SSL on port 1433; Amazon RDS for SQL Server normally uses SQL authentication.

Next steps: configure, validate, run

After connecting source and target, the remaining steps are the same for every database pair:

  • Configure migration options — pick tables, fields, indices, views.
  • Issue detection — the built-in checker flags integrity problems before migration starts.
  • Execute — commit the job, monitor progress, save the session for reuse.
  • Schedule and CLI — rerun saved sessions on a schedule or from the command line.
Open the full guide

Steps 3–5, software features, command-line mode, scheduler, and system requirements.

See all features