Carpe Diem

  Top > スポンサー広告> MySQL > MySQL でデータのバックアップ  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL でデータのバックアップ

2012 - 07/09 [Mon] - 18:59

①データベース自体のバックアップ
データベースをダンプします。

$ mysqldump -u ユーザ名 -p DB名 > 出力先ファイル名

ユーザ名:root
DB名:testdb
出力ファイル:dump.sql


とすると

$ mysqldump -u root -p testdb > dump.sql


文字コードを指定する場合
$ mysqldump --default-character-set=utf8 -u ユーザ名 -p DB名 > 出力先ファイル名

すべてのデータをバックアップする場合
$ mysqldump -u root -x --all-databases > dump.sql


②データベースの復元
ターミナルで
$ mysql -u ユーザ名 -p DB名 < ダンプファイル名

今回であれば

$ mysql -u root -p newtestdb < dump.sql

すべてのデータのバックアップを復元する場合
$ mysql -u root -p < dump.sql


③テーブルの複製
DBは残すけれど、テーブルを複製したい場合

複製元テーブル:pre_db
複製先テーブル:post_db


まず同じフィールドを持つ空テーブルを作成。
mysql> CREATE TABLE post_db LIKE pre_db;

次にデータをコピー
mysql> INSERT INTO post_db SELECT * FROM pre_db;


④空テーブルの作成(手作業)
ローカルに複製したいテーブルを持っておらず、リモートにある場合は空テーブルの書式をダンプします。

リモートにある元のテーブルの書式を
mysql> SHOW CREATE TABLE pre_db\G

*************************** 1. row ***************************
Table: pre_db
Create Table: CREATE TABLE `pre_db` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)


このように吐き出されるので、CREATE TABLE `pre_db` から始まる部分をコピペします。


mysql> CREATE TABLE `pre_db` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

これで同じフィールドの空テーブルが作成できます。


ソース:
MySQLのdump(ダンプ)でデータをバックアップ/復元する
MySQL テーブルの複製(コピー)を作成する

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。