MySQL veritabanında tek bir tablonun yedeğini nasıl alabilirim?


441

Varsayılan olarak, mysqldumptüm veritabanının yedeğini alır. MySQL'de tek bir tabloyu yedeklemem gerekiyor. Mümkün mü? Nasıl geri yüklerim?

Yanıtlar:


838

Tek bir tabloyu .sql'den döküm ve geri yükleme

çöplük

mysqldump db_name table_name > table_name.sql

Uzak bir veritabanından boşaltma

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql

Daha fazla referans için:

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Onarmak

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

veya bir satırda

mysql -u username -p db_name < /path/to/table_name.sql


Sıkıştırılmış (.sql.gz) biçimindeki tek bir tabloyu döküm ve geri yükleme

Kredi bilgileri: John McGrath

çöplük

mysqldump db_name table_name | gzip > table_name.sql.gz

Onarmak

gunzip < table_name.sql.gz | mysql -u username -p db_name


13
SQL genellikle iyi bir şekilde sıkıştırır - yukarıdaki komutu gzip ile borulandırabilirsiniz ve sonuçta elde edilen dosya çok daha küçük olacaktır: mysqldump db_name table_name | gzip > table_name.sql.gz geri yüklemek için: gunzip < table_name.sql.gz | mysql -u username -p db_name
John McGrath

Parolayı komut satırına eklemek isterseniz ne olur? Yani zaten -pPASSWORD kullanıyorsunuz
Freedo

23

mysqldump bir tbl_name parametresi alabilir, böylece yalnızca verilen tabloları yedekler.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql

15

Deneyin

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $ line cotent names tabloları;)

1
Bu, bir veritabanını ayrı tablo sorgularına dökmek için kullanışlıdır - seçeneklerin tam olarak ne yaptığını öğrenebilir miyim?
xiankai

Merhaba, -AN (- no-auto-rehash, -A | --skip-column-names, -N Sonuçlara sütun adları yazma.) -E (- execute = deyimi, -e deyimi | Varsayılan çıktı biçimi --batch
Robin Gomez

12

Aşağıdaki gibi belirli bir durumla herhangi bir tablonun mysql dökümü alabiliriz

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

Tabloya belirli bir konum koşulu eklemek istiyorsak, aşağıdaki komutu kullanabiliriz

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables

8

Tek MYSQLWorkbench tooltek veya bir grup tablo kullanarak seçilen tabloları dökmek için kolayca kullanabilirsiniz sonra aşağıdaki gibi içe aktarın: Ayrıca u -h IP.ADDRESS.NUMBER after-u ekleyerek yerelde çalıştırıyorsanız u ana bilgisayar bilgileri ekleyebilirsiniz. Kullanıcı adı

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 

Ne yazık ki Mysql Workbench geçersiz veri ihracat yol açabilir bazı kaçan sorunları var ...
barell

6

Bu kodu kullanabilirsiniz:

Bu örnek, sugarcrm veritabanının bir yedeğini alır ve çıktıyı sugarcrm.sql dosyasına döker.

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Sugarcrm.sql, sugarcrm veritabanındaki tüm tablolar için bırak tablo, tablo oluştur ve insert komutu içerecektir. Aşağıda, accounts_contacts tablosunun döküm bilgilerini gösteren sugarcrm.sql dosyasının kısmi çıktısı verilmiştir:

-

- Masa için masa yapısı 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;

--

5

Aşağıdaki kodu kullanabilirsiniz:

  1. Tekli Tablo Yapısı İçin Yedekleme

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Veri içeren Tek Tablo Yapısı için

-

mysqldump <database name> <tablename> > <filename.sql>

Umarım yardımcı olur.


5

Ya kullanabilirsiniz mysqldumpkomut satırından:

mysqldump -u username -p password dbname tablename > "path where you want to dump"

MySQL Workbench'i de kullanabilirsiniz:

Sola gidin> Veri Dışa Aktar> Şema Seç> Tabloları seç ve Dışa Aktar'ı tıklayın


sadece küçük bir bilgi, -p ve şifre -> -şifre arasındaki boşluğu atlayın, ancak güvensiz
Agung Sagita
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.