DotNetNuke, ASP.NET, Web Development Blog

DotNetNuke and MySQL

A question that I see a lot of is, "Can DotNetNuke run on top of MySQL?" The short answer: while It is possible, it is a terrible idea. The same answer is also true for Oracle. But that doesn't mean you can't write DotNetNuke modules that consume data from MySQL, Oracle, or any external data source.

The Long Answer

While DNN does provide a data abstraction layer so that it can, in theory, be run on top of any modern DBMS, the reality is DNN is a very large and complicated system that relies heavily on SQL Server specific Stored Procedures. The SQL used for DotNetNuke is chock full of Stored Procedures. The Stored Procedures improve the performance and security of the system.

A few intrepid souls have attempted to create and maintain MySQL providers but, with the availability of cheap hosting and free versions of SQL Server, there simply isn't enough need for that in order to make it worthwhile and those providers are long out of date.

Even if someone does manage get the latest version of DNN's core running against MySQL, it's still a bad idea because you would lose the key thing that makes DNN special, Modules. You would need to ensure that every module you ever want to use has a MySQL provider and that that provider would continue to be updated throughout the life of the module. Or, you would have to create a MySQL provider for every module that you want to use. The cost of doing this would far exceed the cost of using a hosting company that would provide you a shared SQL Server on which you can run DNN.

But don't lose hope...

Integrating DotNetNuke with MySQL, Oracle, and Other non-SQL Server Databases

While it's a terrible idea to try to run DotNetNuke itself on top of a database other than SQL Server, there are certainly ways to still integrate external database systems with DotNetNuke and there's no reason you can't write your modules to pull data from any external data source. The details of that though are beyond the scope of this blog.


Leave a Comment
Email: (not displayed)

Enter the code shown above:

Return to previous page