mysql ado.net connector下載地址:
http://dev.mysql.com/downloads/connector/net/
選擇版本:

Generally Available Releases(1)是發布版(bug什么的較少的版本吧),而Development Releases(2)是開發版
我們采用1版本
Windows (x86, 32-bit), MSI Installer
該版本是window下的安裝版,如果你安裝了這個版本的話,在本機調試的時候可以不用再次注冊MySql.Data.MySqlClient,vs會找到dbprovider為此的dll,
如果重復注冊會報錯
創建 system.data 的配置節處理程序時出錯: 列“InvariantName”被約束為是唯一的。值“MySql.Data.MySqlClient”已存在。
如下圖
:

.Net & Mono (Architecture Independent), ZIP Archive
如果是這個版本的話,那么你需要手動注冊下dll,否則調試的時候或者部署到Linux服務器上的時候MySql.Data.dll是無法被加載的,所以要手工注冊下代碼如下
<system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=6.9.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> </DbProviderFactories> </system.data>
對於
type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=6.9.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
這段根據自己的版本改變:C:\Windows\Assembly

注意了:這樣就會在windows下調試的時候報重復注冊的錯了。
我糾結了:在群友熬夜后如頭像的幫助下解決了
在注冊前先移除,上面web.config的配置改變為
<system.data> <DbProviderFactories> <remove invariant="MySql.Data.MySqlClient"></remove>//先移除,接下來注冊 <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=6.9.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> </DbProviderFactories> </system.data>
ok,解決了,多謝熬夜后如頭像的幫助。我也記錄此問題來幫助以后遇到這個問題的朋友。
