服务器是Windows Server 2012,我自己安装了一个MySql数据库,然后一个Web程序和客户端程序都想访问数据库,但是遇到一堆问题。主要是我仍然坚持使用.net 2.0,挂接MySql.Data 6.7.4版本。解决后记录一下
1.IIS访问数据库的问题
未能加载文件或程序集“MySql.Data”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 异常来自 HRESULT:0x80131040
解决:把应用程序池设置为4.0
2.客户端应用程序在服务器上运行,无法连接数据库的问题
System.BadImageFormatException: 未能加载文件或程序集“MySql.Data, Version=8.0.20.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
解决办法:为应用程序建立一个同名的 **.exe.config文件,保护以下内容
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
3.客户端远程连接数据库失败
解决办法:
mysql 8.0密码验证机制问题导致,之前在其他文章上面看到过修改方法,修改一下my.ini文件如下:
如果安装目录下找不到my.ini文件 windows系统下处理如下,打开C盘 查看选项中,查看隐藏文件,如果不出意外在programeData下(C:ProgramDataMySQLMySQL Server 8.0)找到my.ini
加入这一项 default_authentication_plugin=mysql_native_password
代码语言:javascript复制[mysqld]
default_authentication_plugin=mysql_native_password
代码语言:javascript复制同时屏蔽caching_sha2_password