zoukankan      html  css  js  c++  java
  • LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结

    近准备把PDF.NET框架的开源项目“超市管理系统”移植到Linux上跑(演示地址:http://221.123.142.196),使用Jexus服务器和MySQL数据库,相对使用SQLite而言,用MySQL问题比较多,但最后还是一一解决了,先总结如下:

    1,MySQL驱动:

    有人说在mono 下跑MySQL需要老点的MySQL驱动,我实验发现跟此无关,我用的驱动 MySQL.Data.dll 版本是 6.3.6,在mono 3.0.3 下跑是没有问题的。

    2,MySQL服务的版本:

    这个有点关系,我测试了2个MySQL服务版本,一个5.0.95,一个是 5.5.28 ,前者出错的时候,换到后者的数据库又发现没有问题了,看来版本高点好。

    3,MySQL的编码问题:


    为了使用中文,数据库所有语言设置都成UTF-8,或者在连接字符串设置编码(CharSet=utf8) :

    ---------
    server=ip;User Id=uid;password=pwd;CharSet=utf8;DataBase=SuperMarket;Allow Zero Datetime=True
    ----------


    4,MySQL日期字段类型:

    其实这个问题跟网站的“语言文化设置”有关,在拼接SQL的时候,直接DateTime.ToString() 的时候会有不同的格式,而MySQL的语言文化设置跟网站不一样,即会出问题。

    另外,有时日期字段只保存了日期部分,没有保存时间部分,或者时间日期字段为空,会导致查询错误,

    比如网站语言文化设置是 en-US,那么日期变量在SQL拼接的时候是这个样子的: '2013-3-2 10:10:1 AM' ,插入数据的时候不会报错,但MySQL无法查询出来,查询报错,这时候可以在连接字符串中增加“Allow Zero Datetime=True”设置,这样查询不报错了,但是日期字段的值也是空了。


    最佳解决方案是使用Ado.net 的参数化查询。
    PS:PDF.NET框架的OQL,数据控件都是参数化查询的。

    5,Web.config文件有关语言文化的设置:

    由于mono 3.0.x 目前还不是正式版本,所以它的ASP.NET中语言文化只支持 en-US,而通常情况下默认的是当前系统的语言文化设置,比如zn-CH,但框架又不支持,于是MySQL无法获知当前要使用的设置,报错。
    具体设置方法是设置 uiCulture=“en-US”,在

    <system.web>
     <globalization culture="zh-CN" uiCulture="en-US"/>
    ... ...
    </system.web>
    

     或者另外一个方案,就是使用当前稳定版本的 mono 2.10.8

    6,MySQL数据管理:

    可以使用Apache的PhpAdmin来管理MySQL,但还得装apache 的PHP运行时,这里推荐一款CS方式的数据库管理软件,PDF.NET集成开发工具,很方便管理MySQL的,可以执行建库等操作。

     

    (该工具下载地址:http://ft.codeplex.com/releases/view/65308

    ------------------------------------------------------------------

    PS:为了移植到MySQL,感谢Jexus服务器作者“宇内流云”和网友“斌”的大力支持,在他们的帮助下我才成功!

  • 相关阅读:
    mysql中文乱码解决方法
    MYSQL常用数据类型详解
    aspx中格式化时间的几种方式
    常用PHP中花括号使用规则详解
    jQuery对表单的操作
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    PHPEXCEL使用基础教程
    LINQ to XML 编程基础
    PHP获取URL各个部分的函数
    phpExcel常用方法详解大全
  • 原文地址:https://www.cnblogs.com/bluedoctor/p/2939604.html
Copyright © 2011-2022 走看看