在1年前,我用學生價租了一個阿裡雲伺服器(是真的便宜啊),自己在CentOS系統上用命令行搭了個WordPress的環境,開始了為期一個月使用自建博客的歷程。 事實證明,博客在類似博客園這樣的平臺上寫還是非常方便的! + 不用自己優化後臺,雖然WordPress已經足夠傻瓜了,但是我還是太菜了 + ...
在1年前,我用學生價租了一個阿裡雲伺服器(是真的便宜啊),自己在CentOS系統上用命令行搭了個WordPress的環境,開始了為期一個月使用自建博客的歷程。
事實證明,博客在類似博客園這樣的平臺上寫還是非常方便的!
- 不用自己優化後臺,雖然WordPress已經足夠傻瓜了,但是我還是太菜了
- 只有小貴的價格才能租到一個網速不慢+大小夠用的伺服器
之前考研沒有工作沒有收入,於是就狠下心不要了。重新撿起了長草很久的博客園。
今天,下了決心把以前的數據導出來,就有了以下的內容
1、把wordpress.sql
文件導入mysql資料庫
打開Mac的終端,進入MySQL操作界面:
mysql -u root -p
輸入密碼
(1)創建一個空的資料庫
create database <name>;
(2)查看是否創建成功(註意這裡的databases加了s)
show databases;
(3)進入wordpress資料庫進行接下來的操作
use wordpress;
(4)設置資料庫編碼
set names utf8;
(5)導入數據(註意sql文件的路徑)
source /Users/wordpress.sql;
2、分析WordPress資料庫的表結構
(1)顯示WordPress資料庫
show tables;
(2)具體每個表裡邊存著什麼信息呢?
Tables_in_wordpress | - |
---|---|
wp_commentmeta | 評論的數據 |
wp_comments | 評論的數據 |
wp_links | 友情鏈接的數據 |
wp_mgmlp_folders | 未知 |
wp_options | WordPress系統選項、插件、主題 |
wp_postmeta | 文章的數據 |
wp_posts | 文章內容 |
wp_term_relationships | 文章和目錄對應關係 |
wp_term_taxonomy | 未知 |
wp_termmeta | 未知 |
wp_terms | 目錄和標簽 |
wp_usermeta | 用戶的數據 |
wp_users | 用戶的數據 |
(3)這次我主要使用的表和數據如下:
wp_posts:ID、post_date(文章發佈時間)、post_title(文章題目)、post_status(文章狀態)、post_content(文章內容)
wp_term_relationships:object_id(對應文章ID)、term_taxonomy_id(對應term_id)
wp_terms:term_id、name(目錄名稱)
(4)在列出了文章的一些簡要信息是,我發現有非常多的重覆文章
原來wordpress發佈文章時會自動保存一些草稿、修訂版本等無用的文章數據。
經過查看,發現很多的文章狀態(post_status)都是inherit,這些文章狀態都具體是什麼意思呢?
publish:已發佈
inherit:修訂版
draft:草稿
auto-draft:自動保存的草稿
(以上4中就是出現在我的資料庫中的狀態)此外還有:
pending:待審、trash:回收站、future:定時、private:私有
- 由於我的強迫症,我決定刪掉所有狀態是inherit的文章(欄位需要有單引號哦)
delete from wp_posts where post_status='inherit';
2、終於要開始多表查詢了
(1)先查出我需要轉移的所有的文章
(因為是在終端中查看,所以如果直接列印文章內容,是非常難以看懂的,我嘗試了一次,手動苦笑)
思路:查詢文章ID、發佈時間、題目、狀態以及文章所屬的目錄
文章所屬的目錄是先使用文章ID去wp_term_relationships表查詢對應目錄的id,然後根據term_id去wp_terms表中查詢目錄實際的名稱
select p.ID,p.post_date,p.post_title,p.post_status,t.name
from wp_posts as p
left join wp_term_relationships as tr on p.ID=tr.object_id
left join wp_terms as t on t.term_id=tr.term_taxonomy_id;
(2)最後一步根據文章ID去查看文章內容post_content
select post_content from wp_posts where ID=1;
然而可以從圖片中看到,WordPress資料庫中的文章內容存儲的是html格式,並且有的圖片用的是鏈接。
由於我之前的文章數量很少,並且沒有什麼圖片,用以上方法還是可以的。
如果文章數目大,圖片鏈接多,就必須要藉助已經寫好的工具了。
祝周末愉快!
3、刪除資料庫
drop database <name>;