从MySQL网站http://www.mysql.com/products/下载安装MySQL Server和GUI工具。安装好之后,默认的用户名为root。
MySQL for .Net的驱动(Provider),可以使用ByteFX.Data,从http://sourceforge.net/projects/mysqlnet/下载。也可以使用MySQL官方的驱动MySQL Drivers。
故障问题收集:
1. Client does not support authentication protocol requested by server
场景:MySQL Server 5.0,ByteFX.Data 0.76,执行MySqlConnection.Open()时报错。
原因:MySQL后来的版本跟之前的版本密码加密的Hash算法或Code不一样,而ByteFX.Data 0.76这样的Provider或者是MySQL的ODBC驱动等,在新的Server版本之下用的仍然是老的加密方法,造成MySQL登陆故障。
解决:SET PASSWORD FOR root@localhost = OLD_PASSWORD('New Password');
2. Data too long for column 'xx' in row 1
场景:MySQL Server 5.0,ByteFX.Data 0.76,执行Insert语句,字段值中有中文,报上面的错误
原因:MySQL 5.0字符集处理的问题
解决:
将MySQL安装目录下的my.ini文件中的字符集配置如下(修改完之后,最好重启一下MySQL服务):
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=gbk
default-character-set=gbk
[mysqld]
default-character-set=gbk
将表和字段的字符集属性都改成gbk。
在每一次MySqlCommand Execute语句时,如果SQL语句或者参数中包含中文,或者是返回的记录集中有中文(指Select的查询语句),就在这个Execute的SQL语句之前加一个SET NAMES GBK;。
开发示例代码:
1. 参数化方式 使用ByteFX.Data完整示例
}
2. 使用Batch Insert方式(执行效率跟参数化方式基本一样)
}
2. 使用Batch Insert方式(执行效率跟参数化方式基本一样)