![所長](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/プロフィールアバター-1.jpg?w=1256&ssl=1)
まだこのブログが小さいうちにバックアップのことを考えようと思うんだ。
![助手のねずこ](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/nezuco-ぺたー.png?w=1256&ssl=1)
バックアップ?
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-33.png?resize=558%2C541&ssl=1)
![所長](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/プロフィールアバター-1.jpg?w=1256&ssl=1)
(めったにないけど)レンタルサーバー側の障害で万が一サーバが壊れたりデータがなくなってしまったり、自分の作業ミスでブログの大事な設定を変更してしまって元に戻せなくなったり。この世に「絶対大丈夫」はないんだ。だから定期的に正常な状態を複製して保存しておくのが基本なんだ。
特にwordpressはデータベースを利用しているので、単なるファイルコピーだけじゃバックアップできないのでしっかりデータベースのバックアップを考えないといけないよ。
![助手のねずこ](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/nezuco-ぺたー.png?w=1256&ssl=1)
備えあれば憂いなしにゃ。
DBバックアップのやり方は大きく3つ
![Tic Tac Toe Love Hearts Game - pixel2013 / Pixabay](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/tic-tac-toe-love-hearts-game-1777880.jpg?resize=1024%2C898&ssl=1)
ネットの情報を見ると、大きく3つのバックアップのやり方が紹介されています。
1.プラグインなどのツールを使う(難易度:低)
2.phpMyadminから手動でデータベースのバックアップを行う (難易度:中)
3.サーバーにsshでログインしてmysqldumpコマンドで行う (難易度:中の上)
![所長](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/プロフィールアバター-1.jpg?w=1256&ssl=1)
wordpressのプラグインを使うのが一番簡単なんだけど、結局「他人に運命をゆだねる」ことになるリスクはつきもの。プラグインがバグを抱えていたり、思ったようにリストア(データを元に戻すこと)ができなかったり。
今回はプラグイン以外の方法として上記の2と3を紹介します。
これができればwordpressがどういう構造になっているかも理解できて一石二鳥!
![助手のねずこ](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/nezuco-ぺたー.png?w=1256&ssl=1)
わくわくにゃ。
xserver管理画面からMySQLユーザーを確認
まずデータベース(MySQL/MariaDB)にアクセスするための情報を集めましょう。
xserverを例に説明します。
サーバー管理画面から「MySQL設定」に行き、アクセス権所有ユーザーがいることを確認しましょう。デフォルトで1ユーザーはいると思います。今回はそのユーザーを使います。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-26.png?w=1256&ssl=1)
最初パスワードは実は別のファイルに記載されているので探してもいいですが、思い切って変えちゃいましょう。ここで入れたパスワードを使いますので覚えておきましょう。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-31.png?resize=541%2C191&ssl=1)
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-32.png?resize=541%2C258&ssl=1)
phpMyadminからのバックアップ
![Laptop Apple Macbook Computer - StockSnap / Pixabay](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/laptop-apple-macbook-computer-2561018.jpg?resize=1024%2C1024&ssl=1)
phpMyadminとは、MySQLにwebブラウザからアクセスできるツールです。アクセス方法はxserverではサーバ管理画面からアクセスできます。ユーザー名とパスワードを聞かれるので先ほど確認したものを使ってください。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-25.png?resize=851%2C759&ssl=1)
ログインすると、下記のようなが面が出てきます。初めて見る方は落ち着いてください。wordpressで使われているデータベースを選んで(xserverの場合は、xxx_wp1でした)、すべてのテーブルにチェックをいれてエクスポートを実行します。※まだこの段階では何も起こらないので安心してください。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-27.png?resize=808%2C630&ssl=1)
すべてのテーブルが含まれていることを確認します。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-28.png?resize=781%2C476&ssl=1)
オプションを選択します。リストアで使いやすいように、「リストア先のテーブルを空にしてかInsertする」ためのオプションをいくつかチェックしておきます。
![所長](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/プロフィールアバター-1.jpg?w=1256&ssl=1)
詳しい説明は省くけど、データベースのバックアップの考え方として、「そのデータを作るためのコマンドを羅列する」ということなんだ。例えば、すでに100行のデータがあれば、バックアップデータは「100行のデータ」ではなく、「100行のデータを生み出すコマンド」が並んでいると考えるとわかりやすいよ。だから、リストアするときに「まずすでに存在している100行のデータは全部消してから新たに100行書き込むコマンドを流す」という感じだよ。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-29.png?resize=738%2C793&ssl=1)
最後に実行をクリックすると、ブラウザからダウンロードされます。
![](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/image-30.png?resize=242%2C159&ssl=1)
ダウンロードしたファイルを日付毎にしっかり管理しましょう。
以上でphpMyadminを使ったバックアップは終わりです。
![助手のねずこ](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/nezuco-ぺたー.png?w=1256&ssl=1)
思ったより簡単にゃ。
mysqldumpでバックアップ
![Coding Programming Working Macbook - StockSnap / Pixabay](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/coding-programming-working-macbook-924920.jpg?resize=1024%2C682&ssl=1)
![所長](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/08/プロフィールアバター-1.jpg?w=1256&ssl=1)
この方法は、直接サーバにログインしてデータベースであるmysqlを操作するやり方だよ。
少しだけLinuxの知識が必要になります。(といっても、初級レベル)
・シェルスクリプトを作れること
・Linuxの基本的な操作(Bash操作)
まず、レンタルサーバへsshでログインしmysqlへアクセスできるか確認します。
初めてsshでのログインする方は、こちらを参考にしてください。
[xserverhost public_html]$ mysql -uYOUR_USERNAME_wp1 -hlocalhost -p
Enter password: ←mysqlのパスワード≠サーバーのパスワード
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 115004
Server version: 10.5.11-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| YOUR_USERNAME_wp1 |
+--------------------+
2 rows in set (0.001 sec)
バージョンの確認もついでに。
MariaDB [(none)]> use YOUR_USERNAME_wp1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [YOUR_USERNAME_wp1]> select version();
+---------------------+
| version() |
+---------------------+
| 10.5.11-MariaDB-log |
+---------------------+
1 row in set (0.000 sec)
確認が終わったらいったんmysqlから出ましょう
MariaDB [(none)]>exit
さて、この後実際のバックアップコマンドであるmysqlumpを実行していきますが余談です。
本来であれば、mariabackupというイケてるコマンドが使えます。残念ながらxserverではmariabackupをインストールするためのyumコマンドが使えないので今のところあきらめます。
[xserverhost ~]$ yum search MariaDB-backup
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
base | 3.6 kB 00:00
epel | 4.7 kB 00:00
extras | 2.9 kB 00:00
mariadb | 3.4 kB 00:00
mod-pagespeed | 951 B 00:00
updates | 2.9 kB 00:00
(1/4): extras/7/x86_64/primary_db | 243 kB 00:00
(2/4): epel/x86_64/updateinfo | 1.0 MB 00:00
(3/4): epel/x86_64/primary_db | 7.0 MB 00:00
(4/4): updates/7/x86_64/primary_db | 11 MB 00:00
mod-pagespeed 10/10
========================= N/S matched: MariaDB-backup ==========================
MariaDB-backup-debuginfo.x86_64 : Debug information for package MariaDB-backup
MariaDB-backup.x86_64 : MariaDB: a very fast and robust SQL database server
Name and summary matches only, use "search all" for everything.
[xserverhost ~]$ yum install MariaDB-backup
読み込んだプラグイン:fastestmirror
このコマンドを実行するには root である必要があります。
[xserverhost ~]$
昔ながらのmysqldump方式でバックアップを実施します。
最終的には、cronに設定して定期的に実行する形をとるのでバックアップ用のshell scriptファイルとして作っておきます。
#!/bin/sh
#backup.sh
DATE=`date +%Y%m%d`
BkupDir="/home/<user>/<サイトドメイン.com>/backup"
User="<mysqlユーザー>"
Pw="<mysqpパスワード>"
DB="<wordpressのDB名>"
mysqldump -u ${User} -p${Pw} -h localhost -q --single-transaction --add-drop-da
tabase ${DB} > ${BkupDir}/${DATE}_${DB}.sql
変数{}は環境に合わせて変更してください。
また、バックアップファイルの増大や過去ファイルの自動削除はここでは考慮されていませんのであしからず。ディスクフル(容量超過)にならないように定期的に削除が必要です。
そして、、、
何度か必ずテストしましょう。
例えば、-xオプションで
・変数{}が正しく展開されているかどうか
・mysqlに正常にログインできているのか
・バックアップ先のディレクトリが正しいのか、存在しているのか
などは確認しましょう。
sh -x backup.sh
[番外編]画像ファイルの場所
![Hard Drive Disk Hardware Data Hard - bohed / Pixabay](https://i0.wp.com/emslogs.com/wp-content/uploads/2021/09/hard-drive-disk-hardware-data-hard-607461.jpg?resize=1024%2C682&ssl=1)
アイキャッチ画像などのファイルはDBにあるのでしょうか?
いえ、画像ファイルはDBの外にあります。
/home/<YOUR_USERNAME>/<サイトドメイン>.com/public_html/wp-content/uploads/
データベース上にはこのファイルのパス(場所)が格納されている構造です。
~抜粋~
./wp-content/uploads/2021/08/キャッチ_Xserver超簡単.png
./wp-content/uploads/2021/08/キャッチ_Xserver超簡単-300x223.png
./wp-content/uploads/2021/08/キャッチ_OCNモバイルワン.png
./wp-content/uploads/2021/08/キャッチ_OCNモバイルワン-300x141.png
次回はリストア方法について解説します。
コメント