Search code examples
mysqlsql-server-2008data-migration

MYSQL to SQL 2008 migration


We get a MYSQL 5.0 dataset each month (1.7gig) and I need to create a process to migrate this to a SQL Server 2008.

This seems a little harder than I first thought...

I've tried a few ways:

  1. Using the Import wizard
  2. Setting up a linked server

I've also tried different ways:

  1. Using the .net Framework Dataprovider for MYSQL
  2. Using MYSQL ODBC 5.1 driver.

If I try options 1 + 1 (Wizard, using odbc), I get "unable to retrieve column information", Option 2 + 4, I get a message: "Cannot get the column information from OLE DB provider "MSDASQL" for linked server "server name"."

This feels like a cache, or size issue, because if I limit the rows I return to less than 300,000 it works. This is more annoying as the main table is over 1.2 million rows.

So my questions two parts: Am I doing this the right or wrong way, and have I missed something obvious?


Solution

  • You can use SQL Server Integration Services to connect to the MySQL database and pull the data you need over. The SSIS team blog has a walk-through for connecting to MySQL at Connecting to MySQL from SSIS. Once you build your SSIS package, you can re-use it each time you get a new data dump.