Bagaimana cara mengambil cadangan satu tabel dalam database MySQL?

442

Secara default, mysqldumpambil cadangan seluruh database. Saya perlu membuat cadangan satu tabel di MySQL. Apa itu mungkin? Bagaimana cara mengembalikannya?

Mandar Pande
sumber

Jawaban:

838

Dump dan pulihkan satu tabel dari .sql

Membuang

mysqldump db_name table_name > table_name.sql

Membuang dari basis data jauh

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

Untuk referensi lebih lanjut:

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

Mengembalikan

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

atau dalam satu baris

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


Membuang dan mengembalikan satu tabel dari format terkompresi (.sql.gz)

Kredit: John McGrath

Membuang

mysqldump db_name table_name | gzip > table_name.sql.gz

Mengembalikan

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

Ozair Kafray
sumber
14
SQL biasanya kompres dengan baik - Anda dapat menyalurkan perintah di atas melalui gzip dan file yang dihasilkan akan jauh lebih kecil: mysqldump db_name table_name | gzip > table_name.sql.gz untuk mengembalikan: gunzip < table_name.sql.gz | mysql -u username -p db_name
John McGrath
Bagaimana jika Anda ingin memasukkan kata sandi pada baris perintah? Jadi, Anda sudah menggunakan -pPASSWORD
Freedo
24

mysqldump dapat mengambil parameter tbl_name, sehingga hanya mencadangkan tabel yang diberikan.

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

mencoba

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $ nama tabel nama pengguna;)
Robin Gomez
sumber
1
Ini berguna untuk membuang database ke kueri tabel yang terpisah - bolehkah saya tahu apa yang sebenarnya dilakukan opsi?
xiankai
Halo, -AN (- no-auto-rehash, -A | --skip-kolom-names, -N Jangan menulis nama kolom dalam hasil.) -E (- jalankan = pernyataan, -e pernyataan | Jalankan pernyataan dan keluar. Format output default adalah seperti yang diproduksi dengan --batch.) fuente: dev.mysql.com/doc/refman/5.6/en/mysql-command-options.html
Robin Gomez
12

Kita dapat mengambil dump mysql dari tabel tertentu dengan kondisi tertentu seperti di bawah ini

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

Jika kita ingin menambahkan kondisi tertentu di atas meja maka kita dapat menggunakan perintah berikut

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

Anda dapat menggunakan dengan mudah untuk membuang tabel yang dipilih menggunakan MYSQLWorkbench tool, secara individu atau kelompok tabel pada satu dump kemudian mengimpornya sebagai berikut: Anda juga dapat menambahkan informasi host jika Anda menjalankannya di lokal Anda dengan menambahkan -h IP.ADDRESS.NUMBER after-u nama pengguna

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
Daniel Adenew
sumber
Sayangnya Mysql Workbench memiliki beberapa masalah pelarian yang dapat menyebabkan mengekspor data yang tidak valid yang tidak berguna ...
barell
6

Anda dapat menggunakan kode ini:

Contoh ini mengambil cadangan dari basis data sugarcrm dan membuang hasilnya ke sugarcrm.sql

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

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

Sugarcrm.sql akan berisi drop table, buat tabel dan masukkan perintah untuk semua tabel dalam basis data sugarcrm. Berikut ini adalah output parsial dari sugarcrm.sql, menampilkan informasi dump dari tabel accounts_contacts:

-

- Struktur tabel untuk tabel 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;

--
Linda Martin
sumber
5

Anda dapat menggunakan kode di bawah ini:

  1. Untuk Struktur Tabel Tunggal Cadangan saja

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Untuk Struktur Tabel Tunggal dengan data

-

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

Semoga ini bisa membantu.

Phoenix
sumber
5

Anda dapat menggunakan mysqldumpdari baris perintah:

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

Anda juga dapat menggunakan MySQL Workbench:

Ke kiri> Ekspor Data> Pilih Skema> Pilih tabel dan klik Ekspor

SAM AB
sumber
hanya info kecil, hilangkan ruang antara -p dan kata sandi -> -password, tetapi tidak aman
Agung Sagita