1. 程式人生 > >wordpress 匯入資料庫的幾種方法

wordpress 匯入資料庫的幾種方法

辛辛苦苦做了幾個月的部落格,因為一點小小原因,弄出了大問題!當然直接導致的結果就是----我下載重灌了部落格,以前的文章等等全沒有了。。。本來有備份資料庫的,但當時電腦開了“影子系統”我忘記另外備份了,哎!~。。心疼!

近10年,MySQL資料庫廣受網路大眾歡迎。現在,所有的WordPress部落格(包括日誌,設定,評論等)都由MySQL資料庫支援。

雖然外掛和程式碼修改能幫助我們解決一些問題,但有時我們也不得不用phpMyAdmin 中的SQL命令或直接通過SSH訪問資料庫來解決問題。這篇文章將向大家介紹對WordPress較有用的8個SQL修改。其中每個修改版塊都提出了一個問題,並給出解決方案和註解。

1 備份資料庫

問題:儘管本文中所有的技巧都經過測試,但是在嘗試前請務必首先備份MySQL資料庫。

解決方法:手動備份資料庫,請按以下步驟操作:

  1. 登陸phpMyAdmin,選中要備份的資料庫。
  2. 點選水平選單上的“匯出”按鈕。
  3. 選擇壓縮方法(我本人使用gzip),然後單擊“執行”。
  4. 伺服器接著會詢問你是否下載備份,點選“是”,然後把它儲存到硬碟。

註解:使用WP-DB-Backup外掛執行資料庫備份非常方便。WordPress使用者可以安裝這個外掛並定期備份資料。

2 批量刪除日誌修訂本

問題:日誌修訂本是2.6的新增功能,雖然十分有用,但這也增加了MySQL資料庫的負擔。你當然可以手動刪除修訂本,但這將十分麻煩且耗時過長。

解決方法:這個解決辦法非常簡單。我們可以使用SQL語句批量刪除日誌修訂本。

  1. 登陸phpMyAdmin,選中你的WordPress資料庫。
  2. 單擊“SQL”按鈕。把以下視窗中的命令複製貼上到SQL命令下:DELETE FROM wp_posts WHERE post_type = "revision";
  3. 完成了!刪除掉的日誌為你騰除了大量資料庫空間!

註解:wp_posts 表格包含一個名為post_type 的欄位。這個欄位可被賦予諸如日誌,頁面,修訂本的值。當我們需要刪除日誌修訂本時,只要執行wp_posts表格中相對應的修訂本刪除語句就行了。

3 快速刪除垃圾評論

問題:我的一個朋友前不久開通部落格後,一直在網上努力推廣他的部落格。 在他外出度假歸來時,竟發現自己有5000多條評論等待稽核!當然,其中多數都是垃圾廣告。但他認為自己不得不逐個稽核以防刪除了正常評論。

解決方法:慶幸的是,他把這個問題告訴了我。當我告訴他可以使用 SQL時,他已經稽核45分鐘了。

  1. 登陸phpMyAdmin,選中你的WordPress資料庫。
  2. 單擊“SQL”按鈕。把以下視窗中的命令複製貼上到SQL命令下:
    DELETE from wp_comments WHERE comment_approved = '0';
  3. 完成了!現在可以享受清潔無汙染的資料庫環境了!

註解:wp_comments表格中包含名為comment_approved的域,它是一個boolean值(1或0)。通過稽核的評論值為1,等待稽核的值為0.執行以上語句,其實就是刪除還沒有通過稽核的評論。

此操作要謹慎執行。以上語句不僅能幫我們刪除大量垃圾評論,同時也會刪除無效的沒有通過稽核的評論。如果你還沒有使用Akismet,現在就安裝以打擊垃圾評論吧。

4 更改日誌屬性

問題:管理帳戶在安裝WordPress時就已建立。但許多博主把這個帳戶誤以為就是寫日誌的帳號,以致到後來才發現這不是私人帳號。

解決方法:更改所有日誌的作者屬性要花費很多時間,但使用SQL就不用這麼麻煩了。

  1. 登陸phpMyAdmin,選中你的WordPress資料庫。
  2. 首先,開啟SQL語句視窗,執行以下命令以獲取正確的作者ID:
    SELECT ID, display_name FROM wp_users;
  3. phpMyAdmin會顯示許多WordPress使用者的ID。其中NEW_AUTHOR_ID是最近寫日誌的作者的ID, OLD_AUTHOR_ID是原始管理員的ID。
  4. 交換NEW_AUTHOR_ID 和 OLD_AUTHOR_ID ID後,執行以下語句:
    UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
  5. 完成了!以前的日誌屬性現在已改為你剛剛設定的了!

5 手動重設密碼

問題:為了增加部落格安全性,許多博主選擇不易被破解的密碼,如u7*KoF5i8_。這當然很好,但問題在於博主自己忘記密碼的事情也時常發生啊。

解決方法:密碼丟失後,WordPress會給你郵箱傳送密碼重設連結。但如果你在註冊時使用的郵箱現已不可用,或你想使用簡單語句執行這個操作的話,可參考以下步驟:

  1. 登陸phpMyAdmin,選中你的WordPress資料庫並開啟SQL視窗。
  2. 輸入以下語句(假設你的使用者名稱是“admin”):
    UPDATE `wp_users` SET `user_pass` = MD5('PASSWORD') WHERE `wp_users`.`user_login` =`admin` LIMIT 1;
  3. 完成了!你的密碼已更改成功。

註釋:使用者密碼儲存在wp_users表格中。當然,WordPress使用了MD5雜湊保護密碼。

我們要使用“UPDATE” SQL語句和內建的MD5() MySQL函式來把密碼轉化為MD5演算法形式,然後更新。“WHERE”從句使系統只更新管理員的密碼。不帶有“WHERE”從句會導致系統更新所有的密碼。

6 更改域名

問題:雖然我們並不主張這樣做,但也許有時你需要在保留部落格和資料的同時改變部落格的域名。由於WordPress把域名儲存在資料庫中,所以為了把新域名和部落格連線起來,你必須更改資料庫。

解決方法:

  1. 登陸phpMyAdmin,選中你的WordPress資料庫。
  2. 點選“SQL”,開啟SQL命令視窗,輸入以下命令更改URL:
    UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsite.com', 'http://www.newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';
  3. 使用以下語句替代所有日誌的相對URL(guid全域性唯一識別符號)
    UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com','http://www.newsite.com');
  4. 搜尋wp_posts表並替代其中的URL,以確保沒有老的URL存在了:
    UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'http://www.newsite.com');
  5. 完成!現在可以使用新URL登陸WordPress控制檯了。

註解:為了更快地更改WordPress域名,我選擇使用超級有用的MySQL函式“replace,”,這會完全替代所有需要替代的內容。

7 在部落格上顯示SQL查詢數量

問題:瞭解輸入到資料庫的查詢數量對優化部落格載入時間非常重要。為了減少查詢,我們首先要知道單個頁面的查詢數量。

解決方法:

  1. 開啟主題中的footer.php檔案,新增以下程式碼:
    <?php if (is_user_logged_in()) { ?>
    <?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
    <?php } ?>
  2. 儲存檔案,然後訪問部落格。在頁尾,系統已經顯示WordPress資料庫的查詢數目,及查詢所用時間。

註解:許多使用者似乎都不瞭解這個功能。get_num_queries()函式會顯示頁面載入時執行的查詢數目。

以上程式碼只會對註冊使用者顯示查詢數目,因為訪客和搜尋引擎並不需要知道這些內容。但如果你想公開的話,直接刪除if (is_user_logged_in())這個條件語句就可以了。

8 恢復WordPress資料庫

問題:如果修改或升級過程或其它原因造成了部落格資料的丟失或損壞,希望你有備份的資料庫。這樣,你可以把備份的資料庫匯入到資料庫中以彌補損失。

解決辦法:

  1. 登陸phpMyAdmin,選擇你的WordPress資料庫。
  2. 單擊水平選單上的“匯入”按鈕。
  3. 點選“瀏覽”,選擇硬碟上最新備份的資料庫。
  4. 單擊“執行”。如果一切正常的話,你的資料庫現在已在運行了!