linux mono mysql_LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结
近準(zhǔn)備把PDF.NET框架的開源項目“超市管理系統(tǒng)”移植到Linux上跑(演示地址:http://221.123.142.196),使用Jexus服務(wù)器和MySQL數(shù)據(jù)庫,相對使用SQLite而言,用MySQL問題比較多,但最后還是一一解決了,先總結(jié)如下:
1,MySQL驅(qū)動:
有人說在mono?下跑MySQL需要老點的MySQL驅(qū)動,我實驗發(fā)現(xiàn)跟此無關(guān),我用的驅(qū)動?MySQL.Data.dll?版本是?6.3.6,在mono?3.0.3?下跑是沒有問題的。
2,MySQL服務(wù)的版本:
這個有點關(guān)系,我測試了2個MySQL服務(wù)版本,一個5.0.95,一個是?5.5.28?,前者出錯的時候,換到后者的數(shù)據(jù)庫又發(fā)現(xiàn)沒有問題了,看來版本高點好。
3,MySQL的編碼問題:
為了使用中文,數(shù)據(jù)庫所有語言設(shè)置都成UTF-8,或者在連接字符串設(shè)置編碼(CharSet=utf8)?:
---------
server=ip;User?Id=uid;password=pwd;CharSet=utf8;DataBase=SuperMarket;Allow?Zero?Datetime=True
----------
4,MySQL日期字段類型:
其實這個問題跟網(wǎng)站的“語言文化設(shè)置”有關(guān),在拼接SQL的時候,直接DateTime.ToString()?的時候會有不同的格式,而MySQL的語言文化設(shè)置跟網(wǎng)站不一樣,即會出問題。
另外,有時日期字段只保存了日期部分,沒有保存時間部分,或者時間日期字段為空,會導(dǎo)致查詢錯誤,
比如網(wǎng)站語言文化設(shè)置是 en-US,那么日期變量在SQL拼接的時候是這個樣子的:?'2013-3-2 10:10:1 AM' ,插入數(shù)據(jù)的時候不會報錯,但MySQL無法查詢出來,查詢報錯,這時候可以在連接字符串中增加“Allow?Zero?Datetime=True”設(shè)置,這樣查詢不報錯了,但是日期字段的值也是空了。
最佳解決方案是使用Ado.net?的參數(shù)化查詢。
PS:PDF.NET框架的OQL,數(shù)據(jù)控件都是參數(shù)化查詢的。
5,Web.config文件有關(guān)語言文化的設(shè)置:
由于mono?3.0.x?目前還不是正式版本,所以它的ASP.NET中語言文化只支持?en-US,而通常情況下默認(rèn)的是當(dāng)前系統(tǒng)的語言文化設(shè)置,比如zn-CH,但框架又不支持,于是MySQL無法獲知當(dāng)前要使用的設(shè)置,報錯。
具體設(shè)置方法是設(shè)置 uiCulture=“en-US”,在
... ...
或者另外一個方案,就是使用當(dāng)前穩(wěn)定版本的 mono?2.10.8
6,MySQL數(shù)據(jù)管理:
可以使用Apache的PhpAdmin來管理MySQL,但還得裝apache 的PHP運行時,這里推薦一款CS方式的數(shù)據(jù)庫管理軟件,PDF.NET集成開發(fā)工具,很方便管理MySQL的,可以執(zhí)行建庫等操作。
------------------------------------------------------------------
PS:為了移植到MySQL,感謝Jexus服務(wù)器作者“宇內(nèi)流云”和網(wǎng)友“斌”的大力支持,在他們的幫助下我才成功!
總結(jié)
以上是生活随笔為你收集整理的linux mono mysql_LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c 连接mysql.mwb_CodeSm
- 下一篇: 腰间盘突出手术多少钱啊?