この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレスのデータをphpMyAdminでSQL文を使って直接変更する方法 その1

標準でSQLが使えるサーバーが増えたことでデータベースに触れる機会が増えてきました。
最近はワードプレスなどのCMSにもデータベースが使われています。
データベースは色々とあるのですが、主に使用される系統は2つあります。

MySQLPostgreSQLでどちらもオープンソースで無料です。
SQLというのは何かの略語ではないようですが、一説には「Structured Query Language(クエリーランゲージ)」の略称だとも言われています。
クエリーランゲージというようにデータベースに問い合わせをするための言語となっています。

データベースとSQLは混同されがちですが、データベースがエクセルだとするとSQLはマクロとか関数のようなものです。
SQLのいいところは主に4つの命令文しか使わないことです。

[note]SELECT……選択
INSERT……挿入
UPDATE……更新
DELETE……削除[/note]

このたった4つだけです。
データベースの設計は素人では難しいのですが、既にあるデータベースからデータを抽出するのはそれほど難しくはありません。データベースにはテーブルというエクセルのような行と列があって、データは行と列の指定で操作が可能です。
データの座標があるわけです。
言語的な進化は遅いので、一度覚えると大抵どのデータベースでも使えるのがいいところです。

前置きはこのくらいにして、よく使われているMySQLを例にしてワードプレスで役立つSQL文を紹介します。
ワードプレスを導入しているとワードプレスの管理画面とは別に、データベースの管理画面があることに気が付きます。
「phpMyAdmin」と呼ばれるツールであることが多いと思います。

「phpMyAdmin」はMySQLの管理ツールでSQLが分からなくても直感的な操作でテーブルをいじることができます。
データベースのバックアップや復元はこのツールで行います。
データベースは特殊なデータ形式であるため、ファイルを開いて編集することができません。
なので「phpMyAdmin」やSQLを発行することでしか操作ができないようになっています。

経験があると思うのですが、一件や二件のデータの変更は難しくはありません。
しかし、1万件のデータをまとめて、となると途方も無い作業量になります。そこでSQLの出番です。

ワードプレスでデータベースを直接いじらなければならないシーンというのは、おそらく記事が多過ぎてPHPの処理落ちをする場合だと思います。PHPとデータベースというのは別の仕組みです。PHPはワードプレスを動かす言語で、データベースはデータを保存するための仕組みです。なのでデータベースが早くてもPHPに処理の負荷が掛かるとタイムアウトする場合があります。

PHPはサーバーによって、30秒とか60秒といった時間制限が掛けられていたりします。これ以上時間のかかる処理は打ち切ってしまうわけです。それがエラーとなります。安価なサーバーほど秒数が少ないので重い処理はできないというわけですね。こういった場合、ワードプレスの管理画面ではお手上げなので直接データベースをいじることになります。

それでは、MySQLの管理ツールである「phpMyAdmin」にログインします。

phpMyAdminにログイン
phpMyAdminにログイン

 

言語は日本語で表示しています。
画面上部にあるツールバーから [ SQL ] をクリックします。
するとSQLを編集するテキストエリアが表示されるので、ここにSQL文を書いて [ 実行する ] ボタンをクリックするだけです。

画面上部にあるツールバーから [ SQL ] をクリックします。 するとSQLを編集するテキストエリアが表示されるので、ここにSQL文を書いて [ 実行する ] ボタンをクリックするだけです。
画面上部にあるツールバーから [ SQL ] をクリックします。
するとSQLを編集するテキストエリアが表示されるので、ここにSQL文を書いて [ 実行する ] ボタンをクリックするだけです。

するだけなのですが、一度実行すると後戻りはできないので慎重に行う必要があります。下手をするとワードプレスが動作しなくなる可能性もあるので試す前にバックアップをとっておくなどの対策が必要です。

先にバックアップと復元(インポート)について説明します。
データベースのバックアップをとるには画面上部にあるツールバーから [ エクスポート ] をクリックします。

データベースのバックアップをとるには画面上部にあるツールバーから [ エクスポート ] をクリックします。 詳細 - 可能なオプションを全て表示 にチェックを入れます。
データベースのバックアップをとるには画面上部にあるツールバーから [ エクスポート ] をクリックします。
詳細 – 可能なオプションを全て表示 にチェックを入れます。

詳細 – 可能なオプションを全て表示 にチェックを入れます。

すると詳細オプションが表示されます。

チェックする項目は保存するテーブルと圧縮形式と追加コマンドの3つです。

まず保存するテーブルを選択します。全てを保存したい場合は「全選択」というリンクをクリックします。
もし部分的に保存したいテーブルがあれば、そのテーブルだけを選択します。複数選択する場合は [ Ctrl ] キーを押しながらクリックします。Macの場合はコマンドキーとなります。

全てを保存したい場合は「全選択」というリンクをクリックします。 もし部分的に保存したいテーブルがあれば、そのテーブルだけを選択します。複数選択する場合は [ Ctrl ] キーを押しながらクリックします。
全てを保存したい場合は「全選択」というリンクをクリックします。
もし部分的に保存したいテーブルがあれば、そのテーブルだけを選択します。複数選択する場合は [ Ctrl ] キーを押しながらクリックします。

因みに、ツール画面トップでエクスポートをクリックするとデーターベース全体が表示されます。データベースのトップ画面でエクスポートをクリックするとテーブル全体が表示され、テーブル単体を選択するとそのテーブルだけが表示されます。
分かりにくいですが注意点です。

ツール画面トップでエクスポートをクリックするとデーターベース全体が表示されます。
ツール画面トップでエクスポートをクリックするとデーターベース全体が表示されます。

 

次に圧縮形式を「ZIP」形式にします。これをチェックしないとダウンロードに時間が掛かる場合があります。

次に圧縮形式を「ZIP」形式にします。
次に圧縮形式を「ZIP」形式にします。

 

次に「追加コマンド」「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドの追加」をチェックします。

次に「追加コマンド」の「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドの追加」をチェックします。
次に「追加コマンド」の「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドの追加」をチェックします。

 

最後に [ 実行する ] ボタンをクリックすると、しばらくしてダウンロードが始まります。

最後に [ 実行する ] ボタンをクリックすると、しばらくしてダウンロードが始まります。
最後に [ 実行する ] ボタンをクリックすると、しばらくしてダウンロードが始まります。

このファイルをどこかに保存しておいて、復元(インポート)したい時に使います。

次にインポートの説明です。
画面上部にあるツールバーから [ インポート ] をクリックします。

画面上部にあるツールバーから [ インポート ] をクリックします。
画面上部にあるツールバーから [ インポート ] をクリックします。

アップロードファイル横の [ 参照 ] ボタンをクリックして保存したバックアップファイルを選択しアップロードします。

アップロードファイル横の [ 参照 ] ボタンをクリックして保存したバックアップファイルを選択しアップロードします。
アップロードファイル横の [ 参照 ] ボタンをクリックして保存したバックアップファイルを選択しアップロードします。

正常にアップロードされたら [ 実行する ] ボタンをクリックすると復元が完了します。

正常にアップロードされたら [ 実行する ] ボタンをクリックすると復元が完了します。
正常にアップロードされたら [ 実行する ] ボタンをクリックすると復元が完了します。

ただし! 落とし穴があります。アップロードできるファイルの上限があったりします。
ロリポップサーバの場合は「(最長: 512MiB) 」と横に書いてありますが、他のサーバーでは40MBとか制限があったりします。

バックアップファイルを確認してアップロード上限を超えていないか確認しましょう。
もし超えたいた場合はアップロードに失敗します。しかし、大抵は圧縮してあれば多くて30MB程度なので余裕だと思います。しかし、それでも容量が大きい場合は、エクスポートの際にデータベース全体をまとめて保存するのではなく、テーブル単位で小分けにしてエクスポートします。

サイズが大きなテーブルは「wp_posts」「wp-postmeta」なので、このテーブルだけ小分けにするといいかもしれません。
「wp_posts」自体が大きすぎる場合は、テーブルをさらに行数ごとに分割してエクスポートします。
データがフランケン状態になりますが、インポート時に集約されるので大丈夫です。

サイズが大きなテーブルは「wp_posts」と「wp-postmeta」なので、このテーブルだけ小分けにするといいかもしれません。
サイズが大きなテーブルは「wp_posts」と「wp-postmeta」なので、このテーブルだけ小分けにするといいかもしれません。

 

さてバックアップと復元の準備ができたら、実際にSQLを発行してみます。
と言っても無意味にやるのは危険なので、必要があればやってみてください。

関連記事