麻布十番で働くデータ分析者のブログ

グロースハック、プログラミング、データ分析の色々を発信します

My SQLでwordpressのデータをcsv化

すっかり久しぶりの更新になってしまいました。

世間はすっかりクリスマスムードですが、スタートアップにはクリスマスはないです、、、

 

f:id:nimi0370376:20161225013752p:plain

 

昨日と、今日でMySQLなるものをかじったのでそれを紹介したいと思います。

やることとしては、データベースからWord Pressの記事取得してcsvで書き出すというただそれだけなんですけど笑

 

いい勉強になったので、記しときます。

 

 

 

 

0.データベースから記事の場所を確認する

まず、今回は「Word Pressの記事データの場所を確認する」というところから始めます。

 

Wordpress自体をCMSとして使っている人は問題ないのですが、wordpressプラグインとして導入しているサイトは使うと思います。

 

まず、wordpressのデータベース構造こんな感じ

f:id:nimi0370376:20161225014131p:plain

 

 

この中のwp_postsの中に記事データが入っています。

 

その事実を確認するためにwp_posts内のタイトルを取得してみます。

 

  1. sshでサーバーに接続
  2. Mysqlでログイン
  3. databaseを表示
  4. databaseに移動
  5. tabelを表示
  6. テーブルの中からデータをselect

 

ざっとこんな感じの流れ

 

1, サーバーにssh接続

ターミナルから

$ ssh **************(サーバー名)でサーバーにssh接続します。この時に公開鍵を設定していない場合は先に公開鍵を設定してください。

qiita.com

 

 

2,MySQLでログイン

次にmysqlでログインします。

ログインするときは、

 

$mysql -u ユーザー名 -p

 

でEnterを押します。パスワードを聞かれるのであらかじめ設定していたパスワードを入力。

 

 

mysql>

 

みたいな表示になったら成功

 

 

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 ユーザー名@ipアドレス:~/tmp ユーザー名@ipアドレス:~/

 

 

これでいけます。

サーバーからダウンロードするコマンドはscpというものです。

まずscpの後のユーザー名とipアドレスはサーバーのものを、

後半のユーザー名とipアドレスとは自分のpcのやつを入力します。

 

また、:~/はダウンロードしたい場所を指定しています。