Reverse engineering MySQL database with Microsoft Visio

Sometimes we need to reverse engineer our database. Microsoft Visio has an option for reverse engineering. But by default it does not support MySQL or in other words you cannot reverse engineer a MySQL database. I have faced this problem and got the solution and sharing here with you.


The steps involved in this process are described below:

  1. Download the latest MySQL ODBC connector from MySQL site. You may find it hereย
  2. After downloading install the connector.
  3. Now open Microsoft Visio and open Database Model Diagram template (you may find it under Software and Database group).
  4. From Database menu click on Reverse Engineer. You will see the Reverse Engineer wizard.
  5. Click on the New button.
  6. Select System Data Source.
  7. Click Next.
  8. Select MySQL ODBC driver from the list.
  9. Click Next and then Finish. MySQL Connector/ODBC Data Source Configuration window will open.
  10. Give a name to the datasouce, database server host, user name, password and select the database you want to reverse engineer. Remember, the list of database will be shown if you have provided correct information.
  11. Click on Ok. Now you will find the data source in Data Source list.
  12. Select the newly created data source and click Next. The regular wizard for reverse engineering will start.

35 thoughts on “Reverse engineering MySQL database with Microsoft Visio”

  1. Thanks a lot…Its helpful..
    i hva Mysql DB of nearly 100 Tables..
    so how to save it. with these diagrams.
    Also its showing me some primarky key errors pls help..

  2. hi tried installing the connector. i successfully connected to program in VS2008 but could’nt find system data source!!! can u help???

  3. Hi,
    I followed the steps. It let me select the tables and all but after that it just keeps processing and hangs.
    Please help.

  4. Hi … I have been stuck in the step 8 : # Select MySQL ODBC driver from the list.

    because i did not find such option …

    I am using visio 2003..


  5. Thanks,

    I have created the visio diagram for tables,
    Tables have been created successfully but, i m not getting the relationships connector between the tables.

    Please, help me.

  6. I followed your instructions. In step 12 which installed visio driver should I use? I’m getting the notice that the Microsoft Access driver in conjunction with the MySQL data source is perhaps not compatible. Which driver should I use? How do I get the MySQL driver?

  7. Hey,
    I have just install my SQL driver but still it is not appearing in data source. When I try to add new it was not in that list as well.

  8. Dear all,
    I saw several messages that people had trouble finding “MySQL ODBC” in step 8, and so did i.

    To make a long story short, in my case that meant that i had a 64bit OS, 64bit mysql so i downloaded the 64 bit MySQL ODBC connector.
    What i didn’t notice is that Visio is 32 bit, and that’s why the ODBC did not come up in the list.

    If you have the same problem try to download also the 32bit ODBC and install it next to the 64 bit (this does not appear to be a problem on a 64bit os) and try again.

  9. i do everything you say but i cannot see my database details
    and i have following warnnig:
    you are using a visio ‘odbc generic driver’ driver to connect with a ‘text’ dbms datasource. by using an incompatible driver, it is possible that the catalog information retrieved will be incomplete+solution

  10. Sajjad – I am using Windows in a virtual environment (via VMsphre on mac). I can access mysql db via any tool including MySQl workbench. I have VIsion 2010 32 bit installed. I installed the mysql ODBC 32bit driver and I can now select mysql from the source. For some reason Visio is not able to connect to Mysql and only get the information schema and non of the other databases. Please advise what am I missing here?

    Also, is there a way to upload the schema informaion in visio without any database connectivity (from a file that can be generated via a script)?

    Thank you!

  11. I’ve followed steps (Thank you Hendrik for clarification) and got this error code — “can’t connect to mysql server 10060”.

    I read someplace that “If you’re getting error 10060, this means that you ARE NOT ALLOWED to access the web server remotely.”

    Has anyone overcame this error? How?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.