心靈捕手 寫:依照個人升級的經驗, 以我上述的方法, 由 2.4.4a 再升級 2.4.6 是沒有問題的.
http://phpbb-tw.net/phpbb/viewtopic.php?p=199225#199225
唯一要考慮的, 我猜想, 是您的原先資料庫裡頭的文字編碼是否為 utf8?
如果是的話, 那麼直接升級, 享用 (2.4.6 的) MySQL 5.0.22
相反的,
如果您原先資料庫裡頭的文字編碼是 big5 的話,
那麼您就必須先備份整個 (AppServ 底下) /mysql/ (資料夾);
等到您升級 AppServ 完成後, 先不啟動 MySQL, 將整個 /mysql/ 還原後再啟動.
換句話說, 繼續使用原先 (2.4.4a) 的 MySQL 4.0.24
當然, 您也可以考慮先將您的論壇以及資料庫, 徹底轉換 utf8 編碼後, 再做 MySQL 升級.
系統資訊:
- 作業系統: Windows XP SP2
- 架站系統: AppServ 2.4.6 (MySQL 維持 4.0.24)
- 討論區版本: phpBB 2.0.21 (utf8)
前言:
由於 MySQL 4.1 以上版本, 都是以預設 UTF-8 編碼,
所以驅使我個人有了將論壇資料由 BIG5 轉 UTF-8 動機.
轉碼後, 再匯入原資料庫, 是比較沒有問題.
參考連結:
http://phpbb-tw.net/phpbb/viewtopic.php?p=245105#245105
但是, 如果您想升級資料庫的話,
那麼請注意!
這 '匯入' 的動作, 應該是在 '資料庫升級' 之後才進行.
本文將針對如何在升級資料庫之後,
再將以轉碼的資料, 匯入資料庫, 加以說明.
前置作業:
記得做好必要的備份, 以減少資料的流失.
mysql/data/*.*
www/phpbb2/*.*
www/phpMyAdmin/config.inc.php
windows/php.ini
mysql/my.ini
第一步, 升級資料庫版本:
升級資料庫的方法有二:
(ps. 本人採用第一種方式)
1.
下載最新版 AppServ 2.4.6, 升級整個舊版的 AppServ
http://www.appservnetwork.com/
2.
單獨下載最新版免安裝資料庫程式 Without installer (unzip in C:\)
mysql-noinstall-5.0.24-win32.zip
覆蓋舊的 /mysql/*.* 資料夾裡頭的所有資料
http://dev.mysql.com/downloads/mysql/5.0.html#Source
升級完成後, 必須做新增資料庫使用者帳號的動作.
當然, 您也可以以預設 'root' 做為您論壇資料庫的管理者帳號.
如此一來, 也省掉了新增帳號麻煩.
只不過, 您得調整 phpbb2/config.php 裡頭的設定, 方可正常連接論壇.
新增帳號 (密碼), 或者是要更改 root 的密碼,
建議您, 在 MS-DOS (命令提示元) 底下進行. 參考連結:
SET PASSWORD FOR 'username'@'localhost' = OLD_PASSWORD('password');
http://www.appservnetwork.com/forum/ind ... pic=1041.0
http://phpbb-tw.net/phpbb/viewtopic.php?t=45926
http://phpbb-tw.net/phpbb/viewtopic.php?t=46037
新增後, 也必須修改 phpMyAdmin/config.inc.php
如果可以成功進入 phpMyAdmin, 那麼再考慮是否刪除預設帳號.
其實, 既然都有密碼保護, 刪除 'root' 與否, 就不那麼重要了.
第二步, 建立論壇新的資料庫
例如, 舊有論壇資料庫名稱假設是 'phpbb',
那麼將新的論壇資料庫名稱改成是 'phpbb2'.
ps. 建議保留舊資料庫, 不必急著刪除.
校對選取 '
utf8_unicode_ci' 後, 建立該資料庫.
第三步, 匯入已經轉 utf-8 碼的論壇資料, 到新建立的資料庫中.
ps. 我發現我已經將
php.ini 裡頭的
max_execution_time =
max_input_time =
都調整為 600 (秒), 實際做資料匯出時, 卻還是只有 300 (秒) 的作業時間而已.
現在, 我終於發現, 也許 phpMyAdmin/config.inc.php 裡頭的設定值也須調整.
代碼: 選擇全部
$cfg['ExecTimeLimit'] = 300; // maximum execution time in seconds (0 for no limit)
最後收尾:
1.
調整 (取代) mysql/my.ini 的相關設定. 如下:
代碼: 選擇全部
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET NAMES utf8'
default-character-set=utf8
ps. 重新啟動 MySQL 後生效
2.
修改論壇檔案 includes/db.php
#
#-----[ FIND ]-----
#
#
#-----[ BEFORE, ADD ]-----
#
代碼: 選擇全部
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");
3.
檢視, 修改phpbb2/config.php 裡頭的設定:
$dbname =
$dbuser =
$dbpasswd =
是否和您新建立者一致?
一切就緒後, 您應該就大功告成了!