Richie

Sometimes at night when I look up at the stars, and see the whole sky just laid out there, don't you think I ain't remembering it all. I still got dreams like anybody else, and ever so often, I am thinking about how things might of been. And then, all of a sudden, I'm forty, fifty, sixty years old, you know?

[ MySQL ] MySQL开发初步测试 5.0.24a + ByteFX.Data 0.76

    从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
    将表和字段的字符集属性都改成gbk。
    在每一次MySqlCommand Execute语句时,如果SQL语句或者参数中包含中文,或者是返回的记录集中有中文(指Select的查询语句),就在这个Execute的SQL语句之前加一个SET NAMES GBK;。
 
    开发示例代码:
    1. 参数化方式 使用ByteFX.Data完整示例    
使用参数化方式

    2. 使用Batch Insert方式(执行效率跟参数化方式基本一样)   
使用Batch Insert方式

posted on 2006-12-25 21:58  riccc  阅读(1274)  评论(0编辑  收藏  举报

导航