賽迪網 > IT技術 數據庫 > MySQL
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

將後臺數據從Berkeley的文件DB轉到MySQL

發佈時間:2008.07.15 04:46     來源:賽迪網    作者:Dean

【賽迪網-IT技術報道】最近決定把MT的後臺數據從Berkeley的文件DB轉到MySQL。原因之一是使用關系數據庫可以獲得更多的靈活性,比如運行一條sql來變更 所有entry的某一個屬性;另外一個原因是為了提前熟悉一下這個數據庫,牙牙網站使用虛擬主機,DreamHost提供的數據庫是MySQL,而我從前 主要使用了SQL Server,Oracle和DB2,Postgresql也只了解了一點,而MySQL則幾乎沒有接觸過。

下載了5.0.27安裝文件,安裝順利,使用了第一個默認端口3306,UTF-8的數據庫字符集。

安裝完成,運行了命令行客戶端,輸入help,給出的幫助命令不多,也沒見到有關數據庫創建的命令,便查了安裝的幫助文件,組織的還算不錯,很齊全,很快找到相關的命令:

查看已有數據庫show databases;連接數據庫 testuse test;創建數據庫 mtcreate database mt;接下來尋找把已有DB轉化到MySQL的方法,很快找到一個第三方的工具mt-db-convert.cgi ,可以實現MT支援的幾種不同的DB之間的轉換。

下載回來放到cgi-bin的mt目錄,在瀏覽器訪問運行,輸入新創建的MySQL數據庫名稱mt,用戶名root,密碼,主機填入localhost,開始Convert。轉換過程很快就完成了,不到1分鐘,沒有出現錯誤提示,轉換資訊如下:

mt-db-convert.cgi($Rev: 173 $): Converting your MT data between DB engines (for MT 3.2) Loading database schema... Loading data... MT::Author . (1 objects saved.) MT::Blog .. (2 objects saved.) MT::Trackback .......... ..........

(327 objects saved.) MT::Category .......... ..........

(50 objects saved.) MT::Comment .. (2 objects saved.) MT::Entry .......... .......... ..........

(514 objects saved.) MT::IPBanList (0 objects saved.) MT::Log .......... .......... .......... .......... .......

(437 objects saved.) MT::Notification (0 objects saved.) MT::Permission ....

(4 objects saved.) MT::Placement .......... .......... .......... ..........

(527 objects saved.) MT::Template .......... .......... .......... ........

(83 objects saved.) MT::TemplateMap .......... (10 objects saved.) MT::TBPing (0 objects saved.) MT::Session .......... .......... .........

(29 objects saved.) MT::PluginData (0 objects saved.) MT::Config . (1 objects saved.) MT::FileInfo (0 objects saved.) Done copying data from DBM to DBI::mysql! All went well. Your recommended setting -------------------------------------

# DataSource R:/SITE/mt-db ObjectDriver DBI::mysql Database mt DBUser root DBHost localhost DBPassword comein -------------------------------------

然後修改mt-config.cgi文件,把數據源改成MySQL。

再次訪問MT,看起來一切正常,甚至原有的session都沒有丟掉,只是後臺使用的數據已經改變了位置。

不過發現了中文亂碼問題,Google到了這個方法 ,按文修改後,需要再次執行mt-db-convert.cgi,把數據重新導入MySQL,再訪問MT,亂碼沒有了,所有中文顯示正常。

轉換後又發現了一個新的問題,原DB中的Tags全部丟失,原因是mt-db-convert.cgi僅支援到MT 3.1,3.3的新功能帶來的數據變化可能還會有其他資訊丟失。

NOTE

This script is compatible with Movable Type version 3.1x. I didn't test it at any other versions.

其實MT自身已經提供了轉換工具mt-db2sql.cgi,與mt.cgi在同一目錄當中。使用方法是,安裝好MySQL數據庫服務,並創建好用於MT的DB,將MySQL數據庫的配置資訊加入mt-config.cgi,並同時保留原Berkeley DB的路徑配置,即保持兩種DB的配置同時生效,然後通過瀏覽器運行mt-db2sql.cgi,轉換會自動開始,顯示如下資訊:

Loading database schema...Loading data...MT::Author 1MT::Blog 1 3MT::Trackback ...Done copying data from Berkeley DB to your SQL database! All went well.確認轉換成功後,再修改mt-config.cgi,註釋掉Berkeley DB的配置即可。

(責任編輯:盧兆林)


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· 如何讓新安裝的MySQL數據庫變得更安全 (07-09) · lighttpd+PHP(FAST-CGI)++MySQL的學習筆記 (07-08)
· 初學者必讀:MySQL數據庫常見問題匯總 (06-27) · 如何在Unix系統環境下安裝MySQL數據庫 (06-27)
· 個人經驗總結:完全卸載MySQL數據庫5.0 (06-27) · MySQL數據庫在網路安全方面的一些防禦措施 (06-10)
· MySQL中兩種快速創建空表的方式的區別 (06-06) · Lunix環境下MySQL數據庫的自動備份腳本 (06-04)
· 解決MySQL 5.0不能使用自動增加字段問題 (06-02) · 講解MaxDB數據庫和MySQL數據庫的主要差別 (05-30)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 回顧ERP市場發展經歷 提醒CIO選型需理性
· 網銀系統擁堵 SOA從治病良方到罪魁禍首
· 國產ITIL運維先行者 四大廠商角力BI市場
· 金融行業GSN專題解決方案 企業網解決方案
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統