星期五, 6月 29, 2007

discuz & mysql 冒險旅程

搞了一個早上 總算把以前論壇的資料復原
遇到了些問題, 好像上次也有同樣的問題 還是紀錄一下吧!

utf8 的 discuz . 剛剛把資料都複原準備要登入的時候
卻發現無法登入, 錯誤訊息是
Illegal mix of collations blah blah blah...

看來是欄位的charset 跟sql 的存取指令發生衝突了
經過了兩個小時的不斷錯誤嘗試, 我把 global 的 character_set_* 弄成了這樣
就可以登入了!
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
----------
登入後發現資料都是亂碼..
這是我之前遇過的問題, 經驗告訴我應該是 在source 的過程中就錯了
我上網找了一下, 只要照下面步驟就可以把正確編碼的資料restore
mysql -p
mysql> set names 'utf8'; (or any charset you wish)
mysql> source yourfile.sql


that's all

沒有留言: