デフォルトでは、mysqldump
はデータベース全体のバックアップを取ります。 MySQLで単一のテーブルをバックアップする必要があります。出来ますか?復元するにはどうすればいいですか。
ダンプ
mysqldump db_name table_name > table_name.sql
リモートデータベースからのダンプ
mysqldump -u <db_username> -h <db_Host> -p db_name table_name > table_name.sql
詳しくは
http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html
復元
mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql
または一行で
mysql -u username -p db_name < /path/to/table_name.sql
クレジット: ジョンマクグラス
ダンプ
mysqldump db_name table_name | gzip > table_name.sql.gz
復元
gunzip < table_name.sql.gz | mysql -u username -p db_name
mysqldump はtbl_nameパラメータを使用できるため、指定されたテーブルのみがバックアップされます。
mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
試してみる
for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do
mysqldump -u... -p.... NameDataBase $line > $line.sql ;
done
以下のような条件で、特定のテーブルのMySQLダンプを取ることができます。
mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables
テーブルに特定のwhere条件を追加したい場合は、次のコマンドを使用できます。
mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
MYSQLWorkbench tool
を使用して選択したテーブルを個別にダンプするか、1回のダンプでテーブルのグループを簡単にダンプしてから、次のようにインポートできます。また、ホスト情報ローカルで-h IP.ADDRESS.NUMBER after-uユーザー名を追加して
mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql
このコードを使うことができます:
この例では、sugarcrmデータベースのバックアップをとり、その出力をsugarcrm.sqlにダンプします。
# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql
# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Sugarcrm.sqlは、sugarcrmデータベース内のすべてのテーブルに対するdrop table、create table、およびinsertコマンドを含みます。以下は、accounts_contactsテーブルのダンプ情報を示すsugarcrm.sqlの部分的な出力です。
-
accounts_contacts
のテーブル構造DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;
--
以下のコードを使うことができます。
-
mysqldump -d <database name> <tablename> > <filename.sql>
-
mysqldump <database name> <tablename> > <filename.sql>
それが役立つことを願っています。
コマンドラインからmysqldump
を使用することもできます。
mysqldump -u username -p password dbname tablename > "path where you want to dump"
MySQL Workbenchも使用できます。
左に移動>データのエクスポート>スキーマの選択>テーブルの選択とエクスポートをクリック