My SQLでwordpressのデータをcsv化
すっかり久しぶりの更新になってしまいました。
世間はすっかりクリスマスムードですが、スタートアップにはクリスマスはないです、、、
昨日と、今日でMySQLなるものをかじったのでそれを紹介したいと思います。
やることとしては、データベースからWord Pressの記事取得してcsvで書き出すというただそれだけなんですけど笑
いい勉強になったので、記しときます。
0.データベースから記事の場所を確認する
まず、今回は「Word Pressの記事データの場所を確認する」というところから始めます。
Wordpress自体をCMSとして使っている人は問題ないのですが、wordpressをプラグインとして導入しているサイトは使うと思います。
まず、wordpressのデータベース構造こんな感じ
この中のwp_postsの中に記事データが入っています。
その事実を確認するためにwp_posts内のタイトルを取得してみます。
ざっとこんな感じの流れ
1, サーバーにssh接続
ターミナルから
$ ssh **************(サーバー名)でサーバーにssh接続します。この時に公開鍵を設定していない場合は先に公開鍵を設定してください。
2,MySQLでログイン
次にmysqlでログインします。
ログインするときは、
$mysql -u ユーザー名 -p
でEnterを押します。パスワードを聞かれるのであらかじめ設定していたパスワードを入力。
みたいな表示になったら成功
3,databeseを表示
これでサーバー内の情報を見ることができるようになったので、データベースを表示してみます。
データベースの表示は、
mysql> show databases;
で表示できます。
4,databaseに移動
mysqlでdatabaseが確認できたら、実際にwordpressのデータベースに移動していきます。
mysql> use データベース名;
これでデータベースに移動できます。
5,tableを表示
これでtableを表示できるようになりました。tableというのはwp_contentみたいなものです。wordpressの各データはテーブルに保存されています。
mysql>show tables;
でtableを表示します。ここにwp_contentがあればそれは記事データです。
なければ別のところにwordpressの記事データはあります。
6,テーブルの中からデータをセレクト
ここから実際にtitleを確認して、自分の欲しかったデータかどうかを確かめます。
タイトルはpost_titleというデータです。
mysql>select post_title from wp_content
これでタイトル一覧が取得できます。自分の探してたwordpress記事なら成功です。
さあ、これで自分の探していた記事を見つけ出すことに成功しました。
この記事をcsvで出力します。
記事をcsv化してダウンロード
まず、csv化します。
mysql> select * from table into outfile "/tmp/dump.csv" fields terminated by ',' enclosed by '"' lines terminated by '\r\n';
これでサーバー上のtmpファイルに保存されているはずです。
次にこれを自分のローカル環境にダウンロードします。
僕はここからが本当に時間かかりましたw
これでいけます。
サーバーからダウンロードするコマンドはscpというものです。
まずscpの後のユーザー名とipアドレスはサーバーのものを、
後半のユーザー名とipアドレスとは自分のpcのやつを入力します。
また、:~/はダウンロードしたい場所を指定しています。