Im trying to connect to a mysql database on my web server, but I keep getting:
Unable to find the requested .Net Framework Data Provider. It may not be installed.
Im guessing that the ADO.NET connector is present because if I change my config to:
providerName="System.Data.SQLClient"
I get:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
My provider config is:
<add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.0.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
autogenerateschema="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
My Connection string is:
<add name="LocalMySqlServer"
connectionString="Data Source=localhost;user id=web210-aaron;password=tester;database=web210-aaron;"
providerName="System.Data.MySQLClient"/>
Im pretty sure this is correct, especially as if I run it from my local machine (changing the host to the server IP) it runs perfecly! Could someone please confirm that this is a correct connection string.
Im going to answer my own question, as this wasted 3 days of my life trying to configure this manually.
Situation
Unable to find the requested .Net Framework Data Provider. It may not be installed.
When trying to reference the MySql databaseThe issue is that your site cannot find the reference to MySQL.Data.
Solution
There are several sections which need to be changed in your
web.configfile, such asdbproviderfactoriesand creating namespaces. These can be added manually, but it is far more simple to allow the tools to do it for you.You will need to include the relevant dll’s in your bin folder or better yet, use Visual Studio SP1 to create the relevant folder and references by right clicking on the project (there is an option there to create a bin folder containing all of your dlls). Ensure that MySql.Data.MySqlClient is contained in this folder, if it is not you should be able to drag it from your bin folder into the new one that has been created by VS.
You can then use nuGet package manager console to install BLToolKit. This will download any missing dlls, insert them into your folders and correctly reference them automatically. This way, you can deploy your MVC application to a web server where MySql.Data (or any other dll for that matter) may not be installed.