C# visual studio 2010连接mysql

C#连接mysql中间出现的问题记录

使用的是C#语言,visual studio 2010 ,mysql是连接的其他人的mysql数据库,mysql数据库是8.0版本,字符集是utf8mb4。

C#连接mysql,需要在代码里对应要连接mysql查询数据的地方添加引用,添加MySal.Data.dll的引用。

最终连接成功的MySal.Data.dll版本是6.3.6.0.

查询连接mysql代码:

复制代码
using MySql.Data.MySqlClient;//添加的mysql引用
public
DataTable DoGetMysql() { DataTable dt = new DataTable(); string constr = string.Format(@"server=mysql数据库地址;User Id=用户名; passward=密码;Database=数据库名称"); MySqlConnection mycon = new MySqlConnection(constr); try { mycon.Open(); string strSql = string.Format(@"select * from table"); MySqlCommand command = new MySqlCommand(strSql, mycon); MySqlDataAdapter myda = new MySqlDataAdapter(command); myda.Fill(dt); mycon.Close(); if(dt.Rows.Count>0) { return dt; } } catch (Exception ex) { return new DataTable(); } finally { mycon.Close(); } return new DataTable(); }
复制代码

连接mysql中出现的问题:

1.开始时添加的引用是8.0版本和8.4版本的MySal.Data.dll

在代码里编辑的时候可以,但是重新生成解决方案的时候,会报错,提示“未能找到类型或命名空间名称“MySql””

解决方法:5.0.8.1的MySal.Data.dll,添加引用后没有报错,重新生成解决方案也没有报错。

2.更改为5.0.8.1的MySal.Data.dll后

运行时,连接mysql,报错提示“Client does not support authentication protocol requested by server,consider upgrading MySql client”.

c#连接引用的mysql版本低于8,对方的mysql是8.0,mysql 8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 

解决方法:mysql数据库那边把给这边C#用于连接的用户的加密规则改一下,改为mysql_native_password,可以只改这一个用户的加密规则。

3.更改加密规则后,

代码走到

mycon.Open();

时提示“给定关键字不在字典中”,

可能是因为字符集的问题,

更改

string constr = string.Format(@"server=mysql数据库地址;User Id=用户名; passward=密码;Database=数据库名称",charset="utf8");

4.后面添加 charset ="utf8",可以连接数据库,但是代码走到

myda.Fill(dt);

仍然提示“给定关键字不在字典中”,可以连接到数据库

这个是因为字符集的问题,mysql的字符集是“utf8mb4”,上面的charset不能更改为utf8mb4,更改为这个,会连不上数据库

解决方法:添加的mysql引用更改为6.3.6.0版本的。可以连接到数据库,查询数据。

 

MySal.Data.dll下载的官网地址

MySQL :: Download MySQL Connector/NET (Archived Versions)

打开后,选择版本为6.3.6.0,点击下载。

 下载后是一个.msi的文件,可以直接双击下载,下载后的文件一般在C:\Program Files(×86)\MySQL\MySQL Connector Net 6.3.6\Assemblies\v4.0,里面有一个MySal.Data.dll。

posted @   凤灵玉秀  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示