Moving a SQL Server database to MySQL starts with one question, is the source server still running. If it is, the free MySQL Workbench Migration Wizard converts the schema and copies the data over ODBC. If the server is retired or the file is damaged, Univik converts the database directly from the file, MDF, NDF or BAK, and its four step export is covered on the SQL Server to MySQL converter page. Either way, budget the real effort for the T-SQL rewrite and the small MySQL defaults that change behavior quietly.
MySQL feels like the easy migration target. Both engines speak SQL, the table concepts line up and half the tutorials online make it look like an afternoon. The tables are the easy part. What costs the time is everything wrapped around them, the stored procedures that will not run, the character set decision, the way a Linux host treats table name casing and the outage window you have to negotiate. This guide covers the choices in order, so the afternoon estimate turns into a plan you can defend.
Size Up the Job First
Two numbers set the shape of this migration before any tool opens. The first is how many code objects the database carries. Stored procedures, views, triggers and functions are written in T-SQL, and MySQL runs none of it as written, so each one is a manual rewrite into MySQL’s own dialect. Ten procedures is a long day. Three hundred is a quarter.
The second number is how long the applications can lose the database. A reporting system that sleeps at night hands you a free migration window. An order system that never stops forces you into replication and a rehearsed switch. Write both numbers down first, because together they choose the method, the tooling and the calendar.
Add one naming decision to the same page. SQL Server addresses a table three levels deep, database then schema then table, while MySQL treats database and schema as the same thing. The dbo layer has nowhere to go, so it either disappears or gets folded into the MySQL database name, and every three part reference in the application code changes with it. Decide the convention now, since renaming after the load doubles the work.
Ways to Migrate SQL Server to MySQL
Every path from SQL Server to MySQL falls on one side of a simple line, whether the tool talks to a live SQL Server or reads the database file on disk.
With a live server and a modest database, the free route below settles it. With a live server that cannot pause, add replication to the plan. With no server at all, skip to the file based route further down, because none of the connection tools will start.
The Free Route with MySQL Workbench
The MySQL Workbench Migration Wizard is the official free path and the right first stop when both servers are reachable. It connects to SQL Server through ODBC, maps the schema, builds the MySQL tables and copies the rows across in one guided run.
- Install MySQL Workbench and confirm an ODBC driver for SQL Server is present.
- Open the Migration Wizard, point the source at SQL Server and the target at MySQL.
- Pick the schemas and tables, then review the generated MySQL definitions before they run.
- Run the data copy and read the migration report for objects that need a hand.
Know the wizard’s limit going in. Per the Workbench manual, tables and their data convert automatically, while views, stored procedures and triggers do not come along. The report lists them, and the rewrite into MySQL’s dialect is yours. For a database that is mostly tables, the wizard finishes the bulk of the job in one session.
Other Tools Worth a Look
AWS SCT and DMS serve the cloud path here just as they do for Postgres targets. The Schema Conversion Tool assesses and converts toward Amazon RDS for MySQL or Aurora MySQL, and the Database Migration Service streams the rows with change data capture, which keeps the outage near zero for large systems.
Microsoft SSMA is the name people reach for and the wrong one in this direction. The SQL Server Migration Assistant carries MySQL databases into SQL Server, not out of it, so it has nothing to offer a move toward MySQL.
Commercial toolkits earn their licence on procedure heavy databases, where they machine translate a share of the T-SQL that free tools leave untouched. Weigh the fee against the count of objects you would otherwise rewrite by hand.
Plain exports still work when you want full control and the server is up. The bcp utility that ships with SQL Server writes each table to a flat file, and MySQL pulls those files in with LOAD DATA INFILE. You build the target tables yourself and script every step, which makes this the route for teams who want a repeatable, auditable pipeline over a wizard.
If your team is also weighing PostgreSQL as the destination, the choice of tools shifts, and the sibling guide on migrating SQL Server to PostgreSQL walks that version of the decision.
Four MySQL Defaults That Bite Later
The failures that reach support weeks after a MySQL migration are rarely about missing rows. They come from four defaults that change behavior without raising a single error during the load.
The table name trap deserves the extra minute because it hides until deployment. Development happens on a Windows laptop where case does not matter, the app ships to a Linux host where it does, and half the queries return nothing. Settle a naming convention, all lowercase is the common one. Apply it while the tables are being created rather than after the application breaks.
Moving to MariaDB instead of MySQL? The plan here holds. MariaDB began as a fork of MySQL and still speaks its wire protocol, so the same tools and drivers connect to it, and the same four defaults bite. The charset gap between utf8mb4 and the older three byte utf8, the table name casing on Linux and the fractional second rounding all carry across unchanged. What differs is the engine list. MariaDB ships extra storage engines such as Aria and ColumnStore, and the two have drifted since the 2009 fork, so treat the SQL Server to MariaDB move as this guide plus a round of testing rather than a guaranteed identical run.
Plan the Outage or Replicate Around It
Match the cutover style to how long the database can disappear, and the plan mostly writes itself.
Whatever the rung, leave the SQL Server data untouched through the switch and for a comfortable stretch after it. A rollback that costs one configuration change is the cheapest insurance this project will ever buy. And for the bulk phase itself, load faster by dropping secondary indexes and disabling triggers first, then rebuild them once the rows are in.
Prove the Data Made It into MySQL
Loaded is not the same as correct, so the sign off rests on evidence rather than a clean import log. Three pieces of proof cover it.
Give the auto increment columns one direct look too. After a bulk load, confirm the next generated key lands above the highest imported one, so the first live insert does not collide with history. Only when the counts, the checksums and the application all agree has the migration actually finished.
When There Is No Server to Connect To
The Workbench wizard, DMS and every other connection tool share one hard requirement, a SQL Server instance that answers. Real projects lose that luxury all the time. The hardware was recycled years ago, the licence lapsed or corruption keeps the database from attaching, and what remains is a bare MDF, NDF or BAK on a backup drive.
Univik covers exactly that case by treating the file as the source. It reads the database structures directly off the disk pages, exports every table to CSV for a MySQL LOAD DATA import and produces a schema script to guide the rebuild, and it manages this on damaged sources the live tools give up on. The complete walk through, the type mapping reference and the tool FAQs are all on the SQL Server to MySQL converter page. A file too broken to read cleanly goes through SQL Database Recovery first, and the wider set of escape routes from SQL Server is mapped on the SQL Server migration hub. The same file reading trick is what makes opening an MDF without SQL Server possible in the first place.
Frequently Asked Questions
Can MySQL Workbench Connect to SQL Server?
Yes, as a migration source. The Workbench Migration Wizard connects to SQL Server through an ODBC driver, reads the schema and copies tables and data into MySQL. It is a one way bridge for migration rather than a general SQL Server client, and both servers have to be reachable while it runs.
How Do I Migrate SQL Server to MySQL for Free?
Use the MySQL Workbench Migration Wizard, which is free and official. It converts the schema and moves the data over ODBC in a guided run. Budget hand work for the parts it skips, since views, stored procedures and triggers stay behind for a manual rewrite. Free covers the tooling, not the T-SQL translation hours.
Do Stored Procedures Convert from SQL Server to MySQL?
No tool moves them automatically. They are written in T-SQL, MySQL speaks its own procedural dialect and the Workbench wizard explicitly leaves code objects out of the automatic conversion. Plan a rewrite for each procedure, view and trigger. Let that count drive the project estimate more than the data size does.
What Breaks Most Often after Moving to MySQL?
Behavior, not data. The usual culprits are a character set that quietly drops Unicode because the tables were not created with utf8mb4, table name casing that turns strict on a Linux host and timestamps silently rounded to the next second by a plain DATETIME column. All three are prevented by settings chosen before the load.
How Much Downtime Does a MySQL Migration Need?
Anywhere from a planned window to almost none. A bulk export and load needs the source frozen while it runs, which suits a weekend or overnight slot. A replication based move with change data capture seeds MySQL first and streams the changes, so the switch itself takes minutes. Pick by how long the applications can wait.
Can I Convert SQL Server to MySQL without a Live Server?
Yes, by working from the database file instead of a connection. A file based converter reads the MDF, NDF or BAK straight off the disk and hands MySQL plain CSV to load, so a decommissioned or corrupt source is no longer a dead end. Univik takes this route, and the steps sit on its SQL Server to MySQL converter page.
Only the database file survived?
Univik turns a bare MDF, NDF or BAK into CSV files that MySQL loads directly, no SQL Server required and corruption tolerated. See the four steps and the type mapping on the converter page.