LifeType 中文開發論壇

支援 => 安裝與設定 => 主題作者是: jacklo99 於 十一月 29, 2006, 11:04:24 上午



主題: 升級資料庫時沒有亂碼問題, 但卻變成無法以管理員登入~
作者: jacklo99十一月 29, 2006, 11:04:24 上午
因為想要升級LT1.1.2(現在是LT1.0.6), 所以手賤就先從升級Appserv開始做.
Appserv是2.4.4a, Mysql預設是big5編碼, 但因為LT一開始就是使用utf8,
所以雖然打開資料庫看時資料都是亂碼, 但是LT的運行和顯示都一切正常.
升級到Appserv2.4.7時, 可以設定utf編碼了, 升級後資料庫沒有做匯入匯出, 但資料都還在,
連接到LT看也一切正常, 資料庫內容也能顯示正常的中文字,
以為一切都搞定, 準備開始做LT的升級時才發現,
居然無法以管理員身份登入??? 我的LT管理員密碼是正確的, 但LT回應密碼錯誤~
打開MySQL看, 密碼己經是經過編碼的文數字, 看起來沒什麼不對,
只好還原回舊版的Appserv2.4.4a, 一切又都正常了, LT又再度能認識我的密碼了,
請問這是因為mysql編碼校對的問題嗎? 還是有其他的因素?

第二個問題, 還原回來後, 資料庫好像有一點點不穩定,
當我輸入新文章發表時, 所有的內文都不見了, 查了MySQL, 發現article_text這個資料表變成使用中,
不給看, 好像是鎖死了, 所以讓LT無法讀出資料, 才使得內文都消失,
重新開機或中止MySQL都不行, 最後只好把備份的data灌回去, 才解除此一狀況,
但是這時重新貼文, 又似乎不會鎖死了,
理論上來說, 現在我的系統等於是還原回原來的Appserv2.4.4a, 以及尚未動過的LT1.0.6
剛爬過文沒有看到有人有類似狀況, 請問這是怎麼回事呢?

第三個問題,
最近不知為何, 垃圾引用開始變得很多, 每天都會照三頓進來四五十篇,
這也是我想升級的原因之一
請問升成LT1.1.2有機會改善嗎? 還是這是因為垃圾發信者功力提昇的關係?
要如何解決呢?

先在此謝謝各位的指點, 不勝感激~


主題: Re: 升級資料庫時沒有亂碼問題, 但卻變成無法以管理員登入~
作者: jacklo99十二月 10, 2006, 09:07:34 下午
剛剛重新試了一次上週的狀況,
找到可能的問題所在,所以回報一下,目前只是升級mySQL, 由Appserv2.4.4a升到2.4.7,
資料庫的資料在昇級後確實都存在,而且從原來的亂碼變成沒有亂碼發生,
在前台的顯示表現也都很正常,只是無法以管理員帳號登入,
看到一篇重新以MD5重設密碼的Q&A, 試了一下還是不行
仔細檢查後發現,mySQL在轉換昇級時,雖然保留了所有的內容物,但是欄位的參數型態卻全部跑掉了,
尤其是在VARCHAR和CHAR, 以我以前學過一點點Pascal的印象, 這個應該是定義參數長度,
比對了備分下來的SQL檔, 發現以下的神秘事件,
userid的欄位長度由15變成只有5, password由32變成只有10, 但是原始內容還是32個數字,
重新產生的密碼存入後也只剩下10個數字,
更好玩的, 我的userID重設後也只剩下5個字,
所以我試著用最笨的方法檢查26個資料表中的各欄位的參數, 發現以下的規律:
應該是15的都變成5
100->33
255->85
64->21
128->42
30->10
32->10
4->1
50->16
所以我就都改過來了, 基本上現在都很正常,
另外資料庫有時會鎖死, 但可能不是同一個原因, 使用Repair就回來了,
如果用一陣沒問題, 我打算就以這個狀況來昇級到1.1.3
不過在此之前, 有沒有高手們知道這是什麼原因啊?
是因為連線校對產生的錯誤嗎?