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?

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


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

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;)

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

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 

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;

--

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.


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


hanya info kecil, hilangkan ruang antara -p dan kata sandi -> -password, tetapi tidak aman
Agung Sagita
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.