前一陣子把「數位比較王」討論區版本升級,把它從原來的 Discuz! 4.x 升級到 Discuz! 5.x。讀了一下 5.x 的升級須知才發現這個版本的資料庫 Collation 得用 utf8_general_ci 的格式,雖然在 4.x 版時我已經是 UTF-8 化了,但是當初偷懶,用的 Collation 是 latin1_swedish_ci ,看來得有一個大工程得進行了。
於是把編碼與 Collation 都弄好,準備把資料庫回存,這才發現我的資料庫大小因為轉換了編碼與 Collation,居然從原來的 8x MB 長大成 11x MB。雖然我的 phpMyAdmin 一次可以匯入的檔案大小是 30MB,但是也超過了限制。難道要用做苦工的方式把資料庫分次回存嗎?
於是我開始找找有沒有更好的解決方案。
有不少軟體都有提供類似的解決方案,但是不知道是不是我使用方式不對,用來用去都還是多少會有一點問題。最後找到了 BigDump ,這真是一個超級好用的工具呀!
BigDump 的使用方式很簡單,只要先修改下載的壓縮檔內的 bigdump.php ,把其中關於資料庫的設定先修改好
// Database configuration
$db_server = '資料庫主機位置';
$db_name = '資料庫名稱';
$db_username = '資料庫使用者名稱';
$db_password = '資料庫使用者密碼';
接著把 bigdump.php 上傳到 server ,然後使用瀏覽器去執行,如果你 dump 出來的 sql 檔也放在一起的話,就可以在列表找到;如果沒有也無所謂,BigDump 程式也提供上傳介面。
確定之後,點選 " Start Import into 資料庫名稱 at 主機 " 就可以把你的資料庫輕鬆的寫回去了。程式的內定值是每次寫入 3000 筆資料,應該可以符合一般性需求,如果你有特殊需求可以去參考以下參數定義進行修改。
可用到的參數大概有以下這些:
- $linespersession = 3000; (每次寫入的資料數量,內定值是 3000 筆)
- $delaypersession = 0; (每次寫入資料的間隔時間,內定值是 0 ,請注意喔! 如果是 1 秒要設定成 1000)
- $db_connection_charset = ''; (指定資料庫的編碼方式,不一定需要設定)
就是這麼簡單就可以把資料庫輕鬆的寫回了喔!
.
相關文章:
可以問一下數位比較王的主機是哪一家公司嗎?
速度快的好驚人!
TANet ?! 😐