#1046 – No Database Selected(phpMyAdminでのインポート)

この記事は約2分で読めます。
スポンサーリンク

データベース(DB)のバックアップは重要、ということで、mysqldumpにより、定時バックアップをしていることも多いだろう。

バックアップの設定は、Debianの場合

/var/spool/cron/crontabs

にある

root

というファイル。

正し、インストール直後のcrontabsには何もないので作ること。

例えば、test_001というデータベースがあり、これを毎日23時にバックアップする場合、

00 23 * * * /usr/bin/mysqldump -uユーザ名 -pパスワード test_001 | gzip > /home/ユーザ名/backup/test_001_db_`date +\%Y-\%m-\%d-\%H\%M`.sql.gz

とし、Debianを再起動。

すると、毎日23時に、

/home/ユーザ名/backup/

に、

test_001_db_20XX-XX-XX-2300.sql.gz

というファイル名で保存される。

データベースの容量が大きい場合を想定し、.gzに圧縮して保存する。

毎日バックアップされるので、積み重なると無視できない。

データベース(sql)ファイルはテキストファイルなので、圧縮することによる容量減の効果が非常に大きい。

例:圧縮前:11MB→圧縮後:2.2MB

.gzファイルの解凍は、WindowsではLhaplus等で可能。

これで得られたsqlファイルからデータベースを復元する場合、
先に同名のTableを作成しておき、その上でインポートしなければならない。

そうでないと、

#1046 – No Database Selected

と表示され、インポートできない。

同名のTableがない場合は、インポートにより自動で作成はしてくれない。

バックアップしても復元できないと意味がないので、正式運用前に、バックアップだけでなく復元も含め、動作確認をしておくこと。

なお、phpMyAdminからインポートする場合、容量が大きすぎてインポートできない場合は、

phpMyAdminでのインポートファイルの最長を変更(Debian)

を参照し、上限値を上げておくこと。

なお、バックアップしたファイルをLinuxのシステムと同じドライブに入れておくと、ドライブが逝った場合に面倒なので、そのドライブ「外」にも保存するようにすべきだろう。

関連:mysqldump ― データベースバックアッププログラム

コンピュータに於ける「dump(ダンプ)」は「ファイルやメモリの内容を記録、あるいは表示する」という意味であるが、今回の「dump」は「バックアップ」という意味で捉えて問題ない。

タイトルとURLをコピーしました