Membuang tabel mysql menggunakan delphi. Membuat dump database MySQL melalui konsol. Apa itu mysqldump

Buang dan pulihkan basis data data MySQL Ini cukup sederhana dan nyaman untuk dilakukan dari jarak jauh melalui SSH atau langsung melalui konsol server. Dari jarak jauh, hal ini dapat dilakukan dengan menggunakan program Putty/Kitty. Anda juga dapat melakukan contoh di bawah ini pada Windows dengan menjalankan baris perintah ' cmd'. Di bawah ini adalah contoh cara membuat dump database MySQL dan kemudian memulihkannya jika diperlukan, misalnya untuk situs web Anda, toko online, atau proyek lainnya.

Membuat Dump Basis Data MySQL

Untuk menjalankan perintah ini, sambungkan dari jarak jauh ke server Anda melalui SSH menggunakan salah satu program yang tercantum di atas. Setelah terhubung dan otorisasi ke server/hosting, Anda dapat memasukkan perintah di bawah ini.

# Cadangkan satu database ke file dump_file.sql mysqldump -uroot -p your_base > dump_file.sql # Pada Windows, yang terbaik adalah membuat dump dengan perintah yang sedikit berbeda untuk mencegah # penimpaan baris dump yang tidak disengaja karena konversi baris baru karakter "\r\n" di "\n" mysqldump -uroot -p your_base -r dump_file_utf8.sql # Jika Anda hanya memerlukan cadangan tabel terpisah, dan bukan seluruh database # (sebutkan nama tabel yang dipisahkan spasi setelah nama database) mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_file.sql # Jika Anda perlu membuat cadangan hanya struktur database tanpa data mysqldump -uroot -p -- no-data your_base > dump_file.sql # Cadangkan semua database ke file current_date.gz mysqldump -uroot -p --all_databases | gzip -c > "date "+%Y-%m-%d"".gz # Cadangan, di mana INSERT terpisah dibuat untuk setiap catatan # dan dengan indikasi eksplisit pengkodean basis data UTF-8 mysqldump -uroot -p --default- set karakter=utf8 basis_anda --extend-insert=FALSE | gzip -c > "tanggal "+%Y-%m-%d"".gz

# Cadangkan satu database ke dump_file.sql

mysqldump - uroot - p basis_anda > dump_file . sql

# Di Windows, yang terbaik adalah membuat dump dengan perintah yang sedikit berbeda untuk mencegah

# penimpaan baris dump secara tidak disengaja karena konversi karakter baris baru "\r\n" menjadi "\n"

mysqldump - uroot - p basis_anda - r dump_file_utf8 . sql

# Jika Anda memerlukan cadangan hanya tabel individual, dan bukan seluruh database

# (sebutkan nama tabel dengan dipisahkan spasi setelah nama database)

mysqldump - uroot - p your_base TABLE1 TABLE2 TABLE3 > dump_file . sql

# Jika Anda hanya perlu membuat cadangan struktur database tanpa data itu sendiri

mysqldump - uroot - p -- tidak ada - data basis_anda > dump_file . sql

# Cadangkan semua database ke file current_date.gz

mysqldump - uroot - p -- all_databases | gzip - c > "tanggal "+%Y-%m-%d"" . gz

# Cadangan, di mana INSERT terpisah dibuat untuk setiap entri

# dan secara eksplisit menentukan pengkodean database UTF-8

mysqldump - uroot - p -- default - karakter - set = utf8 your_base -- extended - insert = FALSE | gzip - c > "tanggal "+%Y-%m-%d"" . gz

Pada contoh di atas, utilitas digunakan untuk membuat cadangan mysqldump, yang disertakan dengan mysql. Berikut ini adalah parameter untuk membuat backup database yang akan kita bahas lebih detail:

  • -kamu– parameter menentukan login yang akan digunakan untuk terhubung ke database. Dalam contoh ini, kami menggunakan login root, yang harus ditentukan dalam parameter ini tanpa spasi! Hasilnya terlihat seperti -uroot
  • -P– parameter menunjukkan bahwa Anda perlu memasukkan kata sandi untuk login yang ditentukan. Kami membiarkannya kosong, sehingga kata sandi harus dimasukkan setelah menekan "Enter" saat menjalankan perintah. Namun, Anda dapat menentukan kata sandi di sini, seperti pada parameter login, tanpa spasi setelah -p, namun metode ini tidak aman, karena konsol menyimpan perintah Anda ke file log dan jika Anda tidak menghapusnya secara teratur, itu mungkin dilihat oleh penyerang.
  • basis_Anda– alih-alih baris ini dalam contoh, Anda perlu menentukan nama asli Basis data yang Anda buat cadangannya.
  • > – operator yang menunjukkan arah tindakan, mis. seolah-olah ini menunjukkan bahwa Anda akan menulis dari database ke file.
  • dump_file.sql– ini adalah nama file .slq tempat Anda ingin menyimpan database. Ditandai dengan spasi setelah operator ‘>’. Anda dapat menentukan nama lainnya. Misalnya agar sistem otomatis memasukkan namanya ke dalam nama waktu saat ini, cukup tentukan baris seperti:

    "tanggal "+%Y-%m-%d""

    "tanggal "+%Y-%m-%d""


    setelah baris ini dalam contoh, ekstensi file ditunjukkan ' .gz'. Hasilnya, file seperti ' 15-11-2014.gz‘.

    Perhatian! Jika Anda hanya menentukan nama file, itu akan disimpan di direktori yang sama dengan yang Anda jalankan perintah ini. Itu. jika Anda melihat sesuatu seperti ini di command prompt # , Di mana root@dvs ini adalah login dan nama server, file akan dibuat di direktori /rumah. Untuk mengubah penyimpanan file ke jalur lain, tentukan nama jalur penuh untuk menyimpan file, misalnya: /var/www/backup/dump_file.sql.

  • Dalam contoh kedua, alih-alih menggunakan operator ' > ' operator ' digunakan | ', yang menunjukkan perlunya melakukan perintah tambahan gzip dengan parameter ' -C' yang memungkinkan Anda untuk segera mengemas dump ke dalam arsip, dan baru kemudian menyimpannya ke file seperti ' 15-11-2014.gz', seperti yang dilaporkan oleh operator' > ‘.
  • Parameter –tidak ada data memungkinkan Anda membuang hanya struktur database tanpa data itu sendiri. Cukup berguna dalam beberapa kasus ketika data tidak diperlukan.
  • Pilihan –set-karakter-default=utf8 Dan –masukkan-diperluas=SALAH. Yang pertama memungkinkan Anda untuk secara eksplisit menentukan pengkodean yang digunakan oleh database ini, sehingga menghindari penyimpanan database dalam pengkodean yang salah, alih-alih utf8, Anda dapat menentukan pengkodean lainnya, misalnya cp1251. Parameter kedua memungkinkan Anda menentukan bahwa perintah INSERT terpisah harus dibuat untuk setiap rekaman saat mengekspor. Dalam beberapa kasus, hal ini mungkin diperlukan ketika restorasi sebagian data dari tempat pembuangan sampah.
  • Memulihkan Database dari File Dump MySQL

    Sekarang mari kita lihat bersama Anda proses sebaliknya memulihkan database dari file dump. Tindakan ini dilakukan menggunakan program mysql. Mari kita lihat contohnya segera.

Ide artikel ini adalah untuk membuat panduan berkualitas tinggi untuk menginstal dan bekerja dengan program mysqldump. Menggunakan banyak contoh dan mengumpulkan semuanya pilihan yang berguna dan parameter untuk bekerja dengan utilitas ini. Sulit untuk memasukkan semuanya ke dalam satu artikel, jadi semuanya akan singkat dan langsung pada sasaran. Jika ada yang salah memahami sesuatu, silakan komentari artikel tersebut.

Bagian:

Instalasimysqldump:

Apa itu mysqldump?

MySQLdump- Ini aplikasi server, yang memungkinkan Anda membuat cadangan database (selanjutnya disebut dump) dan menyimpannya dalam file terpisah. Dalam hal ini dimungkinkan untuk dilaksanakan pengaturan fleksibel dump: beberapa atau semua database, pengarsipan gzip, penambahan kunci, perintah drop dan banyak lagi. Impor terbalik juga dimungkinkan salinan cadangan DB. Dapat dilakukan dengan menggunakan PHP, tapi ini tidak bisa diterima proyek-proyek besar, yang memiliki bobot data besar.

Program ini sangat berguna dalam mengekspor dan mengimpor data dari database. Itu dapat diinstal sebagai standar di hosting Anda (lebih tepatnya server mysql). Namun untuk mengasah kemampuan Anda dalam bekerja dengan mysqldump dan mempelajari cara menginstalnya, Anda dapat menginstalnya di denwer. Itulah yang akan kami lakukan sekarang.

Unduh mysqldump.dll

Anda selalu dapat mengunduh program mysqldump di situs web kami, dan mengunduh aplikasi ini sepenuhnya gratis. Unduh mysqldump dari tautan langsung di bawah.

Bagaimana cara menginstal mysqldump?

Kami akan menginstal di lokal Server Denwer. Menginstal aplikasinya mudah dan sederhana, untuk melakukannya, ikuti petunjuk dan tangkapan layar yang disediakan di bawah.

1.Salin file mysqldump.exe ke folder Denver:

D:\WebServers\usr\local\mysql5\bin\
Dalam hal ini, Anda mungkin memiliki nama yang sedikit berbeda untuk folder mysql5, misalnya mysql-5.1 atau sedikit dimodifikasi. Oleh karena itu, untuk lebih jelasnya, berikut adalah screenshotnya:

2. Luncurkan Denver

Tentunya Anda sendiri tahu cara meluncurkan Denwer.


3.Luncurkan konsol:

Mulai->Jalankan->cmd.exe atau di Windows 7: Mulai->Cari->Masukcmd.exe->Memasuki, seperti yang ditunjukkan pada tangkapan layar:

4. Pengujian:

Menggunakan perintah di konsol, buka disk virtual Denver (saya punya W:\) dan ke folder dengan aplikasi mysqldump. Untuk mengonfirmasi pelaksanaan perintah, tekan Enter.

Masukkan perintah:

W:- buka disk virtual Denver

CDusr\lokal\mysql5\tempat sampah– buka folder dengan aplikasi tersebut

mysqldump -uroot nama_db_anda>nama_file.sql– pengujian, membuang database sembarang ke dalam file, yang akan disimpan di folder bin.

Instalasi saya berhasil, saya harap instalasi Anda juga. Di folder bin kami menemukan file cadangan database. Untuk mempelajari cara menggunakan program ini secara lebih luas, bacalah bagian artikel berikut ini.

Memulai: ekspor dan impor basis data

Ekspor basis data

Kami telah menginstal aplikasi dan mempelajari cara menggunakan konsol. Kami sudah melakukan uji dump. Sekarang mari kita lakukan dump database sederhana ke direktori yang kita butuhkan. Untuk melakukan ini, saya membuat database yang digunakan sebelumnya yang disebut "test". Itu terletak di server Denwer lokal. Di bawah ini adalah perintah konsol langkah demi langkah untuk membuang database pengujian ke folder dan file yang diinginkan.

W: cdusr\local\mysql5\bin mysqldump -uroot test>D:\test\easydump.sql

Tangkapan layar di bawah menunjukkan file dump di folder pengujian:

Ekspor berhasil diselesaikan. Sekarang mari kita coba mengimpor file ini kembali ke server kami.

Impor Basis Data

Untuk mengimpor database, hapus database di phpmyadmin dan gunakan perintah berikut di cmd.exe:

Tes Mysql -uroot

Catatan penting: jika saat mengekspor kami menggunakan mysqldump..., lalu saat mengimpor Anda harus memulai perintah dengan mysql. Contoh ini adalah penggunaan dasar aplikasi mysqldump untuk membuat backup database. Anda akan menemukan lebih banyak perintah dan contoh di bagian dan artikel.

Contoh MySQLdump

Di bawah ini adalah contoh penggunaan mysqldump yang paling umum digunakan. Dengan mana Anda tidak hanya dapat membuat cadangan, tetapi juga menambahkan beberapa parameter cadangan: kompresi menggunakan gzip, menambahkan tanggal pencadangan, membuang hanya beberapa tabel atau struktur database, menggunakan pengaturan fleksibel. Pengaturan ini memungkinkan Anda meningkatkan kecepatan eksekusi dump dan menggunakan ruang disk secara hemat.

Membuat tempat pembuangan sampah

mysqldump –uUSER -h82.82.82.82 -pPASSWORD DATABASE > /path/ke/file/dump.sql

-kamu atau --pengguna=...- nama belakang

-H atau --tuan rumah=... - tuan rumah jarak jauh(untuk localhost Anda dapat menghilangkan parameter ini)

-P atau --kata sandi- minta kata sandi

basis data- nama database yang diekspor

/path/ke/file/dump.sql- jalur dan file untuk dump

Kami membuang beberapa database, untuk ini kami menggunakan atribut --databases atau disingkat –B, lihat contoh di bawah ini:

Mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

Jika Anda ingin membuat dump semua database, Anda harus menggunakan parameter –all-databases atau –A dalam bentuk yang disingkat, lihat contoh:

Mysqldump -uroot -h82.82.82.82 -p -A > semua-database.sql

Membuat struktur database tanpa data

Untuk melakukan ini, Anda perlu menggunakan parameter --no-data seperti yang ditunjukkan pada contoh di bawah ini:

Mysqldump --tidak ada-data - uUSER -pPASSWORD DATABASE > /path/ke/file/schema.sql

Buat dump hanya satu atau beberapa tabel database

mysqldump -uUSER -pPASSWORD DATABASE TABEL1 TABEL2 TABEL3 > dump.sql

Buat dump dan arsipkangzip

mysqldump -u PENGGUNA -pPASSWORD DATABASE | gzip > /path/ke/outputfile.sql.gz

Buat dump dengan tanggal di nama file

mysqldump -uUSER -pPASSWORD DATABASE | gzip > `tanggal +dump.sql.%Y%m%d.%H%M%S.gz`

Menggunakan atribut tambahan

mysqldump -Q -c -e -uUSER -pPASSWORD DATABASE > /path/ke/file/dump.sql

Seperti disebutkan sebelumnya, atribut ini mengurangi ukuran file akhir dan mempercepat proses pencadangan. Lebih tepatnya:

-Q membungkus nama dalam tanda kutip belakang

-C melakukan penyisipan penuh, termasuk nama kolom

-e membuat sisipan yang diperluas.

Posting ini berisi perintah yang paling umum digunakan untuk membuat atau menyebarkan cadangan database MySQL.

Yah, saya hanya bosan terus-menerus mencari kunci di Google ketika saya “tiba-tiba” membutuhkannya.

Sedikit teori...

MySQLDUMP adalah alat yang memungkinkan Anda membuat salinan cadangan database MySQL. Hasilnya, kami mendapatkan file .sql dengan dump database. DI DALAM berkas ini berisi kode Sql dalam bentuk teks, mis. Anda selalu dapat membukanya editor teks untuk melihat, mengedit, dll...
Anda dapat memulihkan dump tersebut menggunakan utilitas mysql melalui STDIN.

Omong-omong, ada juga utilitas seperti MySqlHotCopy, yang paling baik digunakan untuk membuat hot backup, karena mengunci database dan menyalin file database ke tempat yang tepat. Namun hal ini hanya akan berfungsi jika dijalankan di server itu sendiri, hanya berfungsi dengan tabel MyISAM dan Archive dan lebih cocok untuk database besar.
Anda dapat memulihkan data dengan menyalin file yang disimpan ke direktori data MySQL.

Tapi, secara umum, ini bukan tentang dia... mungkin saya akan menulis tentang "hot copy" di artikel lain...

Membuat Cadangan Basis Data

Mari kita mulai dengan perintah paling umum untuk membuang situs site.ru ke dalam file site.ru:

Mysqldump -uroot -h10.30.30.10 -p situs_ru > situs_ru.sql

    Lebih lanjut tentang kunci:
  • -kamu(--user=...) adalah nama pengguna basis data;
  • -H(—host=…) adalah host tempat server itu sendiri berada. Jika servernya lokal, maka parameter ini tidak dapat digunakan atau Anda dapat memasukkan localhost di sana. Perlu diingat juga bahwa ip server setelah kunci harus ditulis tanpa spasi;
  • -P(--password=...) adalah kata sandi pengguna. Jika kunci ini tidak digunakan, maka koneksi ke database dapat dilakukan jika tidak ada kata sandi. Selain itu, tidak ada yang melarang Anda memasukkan kata sandi ke dalam perintah, dan tidak boleh ada spasi setelah kunci (misalnya: -p1234567890, di mana 1234567890 adalah kata sandinya);
  • situs_ru ini adalah nama database di server MySql;
  • situs_ru.sql ini adalah file dumpnya.

Untuk membuat salinan cadangan beberapa database, Anda dapat menggunakan kuncinya -B dan tentukan beberapa database, berikut contohnya:

Mysqldump -uroot -h10.30.30.10 -p site_ru site2_ru site3_ru > sites.sql

Jika situasinya tidak memberi Anda waktu untuk berpikir, dan Anda perlu membuat salinan cadangan semua database, maka dalam situasi ini Anda dapat menggunakan kuncinya --semua-database, ini contohnya:

Mysqldump -uroot -h10.30.30.10 -p -A > semua-db.sql

Ngomong-ngomong, ada nuansanya.

Jika Anda membuat cadangan database pada server yang sedang berjalan, dan, terlebih lagi, server yang digunakan secara aktif, Anda berisiko memutus koneksi logis. Ada beberapa cara untuk menghindari hal ini.

Cara pertama adalah dengan mengunci tabel, mis. Anda dapat menggunakan parameter --lock-tables, berikut contohnya:

Mysqldump -uroot -h10.30.30.10 -p --lock-tables site_ru > site_ru.sql

Namun pada saat membuat cadangan, permintaan klien akan ditangguhkan... dan oleh karena itu mungkin ada batas waktu.

Cara kedua adalah dengan menggunakan saklar --flush-log saat membuat cadangan. Kunci ini akan ditutup catatan lama tindakan dan akan membuat yang baru. Jika seseorang menulis sesuatu selama pembuatan salinan, ini akan tercermin di awal log dan perubahan ini dapat ditransfer ke database. Selanjutnya, yang pasti, setelah menyelesaikan pencadangan, Anda perlu menjalankan perintah mysqladmin -flush-logs dan meninggalkan salinan log biner kedua dari belakang.

Memulihkan cadangan basis data

Di sini utilitas "mysql" sudah berkuasa. Berikut ini contohnya:

Mysql -uroot -h10.30.30.10 -p situs_ru< site_ru.sql

Cara lain yang lebih bertele-tele:

Mysql -uroot -p Masukkan kata sandi: Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau\g. Id koneksi MySQL Anda adalah 35 Versi server: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu) Hak Cipta (c) 2000, 2016, Oracle dan/atau afiliasinya. Semua hak dilindungi undang-undang. Oracle adalah merek dagang terdaftar dari Oracle Corporation dan/atau afiliasinya. Nama lain mungkin merupakan merek dagang dari pemiliknya masing-masing. Ketik "bantuan;" atau "\h" untuk bantuan. Ketik "\c" untuk menghapus pernyataan masukan saat ini. mysql> gunakan site_ru; mysql> sumber site_ru.sql;

Nah, jika database Anda disimpan dalam arsip gz, maka Anda bisa menggabungkannya perintah mysql dan zcat seperti ini:

Zcat situs_ru.sql.gz | mysql -uroot -h10.30.30.10 -p situs_ru

Opsi lainnya untuk menggunakan mysqldump

Misalnya, kita memerlukan database di zona dev, bisa dikatakan, sandbox, dan ukuran database utama sangat besar. Anda dapat menggunakan kunci -where="true limit 150" yang akan kami tentukan secara eksplisit sampel datanya tidak lebih dari 150 catatan. Berikut ini contohnya:

Mysqldump -uroot -h10.30.30.10 -p --where="batas sebenarnya 150" site_ru > site_ru.sql

Jika kita hanya membutuhkan struktur tanpa data, maka kita dapat menggunakan saklar --no-data, berikut contohnya

Mysqldump -uroot -h10.30.30.10 -p --no-data site_ru > site_ru.sql

Jika kita hanya membutuhkan salinan satu tabel, berikut adalah contoh perintahnya:

Mysqldump -u root -p nama tabel testdb > testdb_table_backup.sql

Jika kita memerlukan salinan pemicu, prosedur, dan peristiwa (penjadwal bawaan), berikut contohnya:

Mysqldump --no-create-info --no-data --triggers --routines --events -uroot -p site_ru | gzip > ~/database.sql.gz

Anda juga dapat langsung membuat dump database yang diarsipkan. Anda dapat melakukannya seperti ini:

Mysqldump -uroot -p situs_ru | gzip > /path/ke/site_ru.sql.gz

Dan Anda juga dapat menentukan tanggal pembuatan arsip, seperti ini:

Mysqldump -uroot -p situs_ru | gzip > `tanggal +/path/ke/site_ru.sql.%Y%m%d.%H%M%S.gz`

Kunci untuk menggunakan mysqldump

Di bawah ini adalah kunci mysqldump paling populer:

Perluas daftar...

  • --add-drop-database - Menambahkan pernyataan DROP DATABASE sebelum setiap pernyataan CREATE DATABASE.
  • --add-drop-table — Menambahkan pernyataan DROP TABLE sebelum setiap pernyataan CREATE TABLE.
  • --add-locks - Menambahkan pernyataan LOCK TABLES sebelum eksekusi dan pernyataan UNLOCK TABLE setelah eksekusi setiap dump tabel (untuk mempercepat akses ke MySQL).
  • --all-databases, -A — Menyimpan semua tabel dari semua database yang dikelola oleh server saat ini.
  • --allow-keywords - Mengizinkan pembuatan nama kolom yang cocok dengan kata kunci. Konflik dapat dihindari dengan menambahkan nama tabel sebagai awalan pada nama setiap kolom.
  • —komentar, -i — Parameter ini memungkinkan Anda menambahkan ke dump informasi tambahan, seperti versi mysqldump, versi MySQL, nama host tempat server MySQL berada.
  • --compact Opsi ini menyebabkan mysqldump membuat dump menggunakan format paling ringkas. Parameternya adalah kebalikan dari -komentar.
  • --kompatibel=nama — Parameter menghasilkan keluaran yang kompatibel dengan DBMS lain atau versi MySQL yang lebih lama. Alih-alih kata kunci nama, Anda dapat menggunakan: "ansi", "mysql323", "mysql40", "postgresql", "Oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "no_field_options" . Anda dapat menggunakan beberapa nilai, dipisahkan dengan koma.
  • --complete-insert, -c — Gunakan bentuk lengkap pernyataan INSERT (dengan nama kolom).
  • --create-options - Menambahkan informasi tambahan ke pernyataan CREATE TABLE. Ini bisa berupa tipe tabel, nilai AUTO_INCREMENT awal, dan parameter lainnya.
  • --databases, -B — Parameter ini memungkinkan Anda menentukan nama beberapa database yang ingin Anda buat dumpnya.
  • --delayed — Gunakan perintah INSERT DELAYED saat menyisipkan baris.
  • --delete-master-logs - Server replikasi master secara otomatis menghapus log biner (logbin) setelah dump berhasil dibuat menggunakan mysqldump. Opsi ini secara otomatis mengaktifkan opsi "--master-data".
  • --disable-keys, -K — Per tabel, sekeliling pernyataan MASUKKAN ekspresi /*!40000 ALTER TABLE tbl_name NONAKTIFKAN KUNCI */; dan /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; dalam output hasil dump. Ini akan mempercepat pemuatan data ke server untuk tabel seperti MyISAM, karena indeks dibuat setelah semua data dimasukkan.
  • --exended-insert, -e — Gunakan perintah INSERT dengan sintaks multiline baru (meningkatkan kekompakan dan kinerja pernyataan input).
  • --flush-logs, -F — Menulis data ke disk syslog dari buffer server MySQL sebelum memulai dump.
  • --force, -f — Lanjutkan meskipun terjadi kesalahan selama proses pembuatan dump.
  • —hex-blob — Parameter ini memungkinkan Anda untuk merepresentasikan data biner dalam bidang bertipe BINARY, VARBINARY, BLOB, dan BIT dalam format heksadesimal. Jadi urutan “abc” akan diganti dengan 0x616263.
  • --ignore-table=db_name.tbl_name — Memungkinkan tabel tbl_name dari database db_name diabaikan saat membuat dump. Jika Anda perlu mengecualikan beberapa tabel dari dump, Anda harus menggunakan beberapa parameter “--ignore-table”, yang menentukan satu tabel di setiap parameter.
  • --insert-ignore — Menambahkan kata kunci ABAIKAN ke dalam pernyataan INSERT.
  • --lock-all-tables, -x — Menentukan opsi ini menyebabkan semua tabel di semua database dikunci saat dump penuh dari semua database dibuat.
  • --lock-tables, -l — Menentukan opsi ini akan mengunci tabel database tempat dump dibuat.
  • --no-autocommit - Menyertakan semua pernyataan INSERT pada tabel yang sama dalam satu transaksi, sehingga memuat data lebih cepat.
  • --no-create-db, -n — Menekan pembuangan pernyataan CREATE DATABASE yang secara otomatis ditambahkan saat menggunakan opsi --databases dan --all-databases.
  • --no-data, -d — Menekan pembuatan pernyataan INSERT di dump, yang dapat berguna saat membuang struktur database tanpa data itu sendiri.
  • —opt — Parameter ini dimaksudkan untuk mengoptimalkan kecepatan pencadangan data dan merupakan pintasan yang mencakup opsi berikut: —cepat —tambahkan-letakkan-tabel —tambahkan-kunci —buat-pilihan —nonaktifkan-kunci —perluasan-masukkan —kunci -tabel —set-charset . Sejak MySQL 4.1, opsi --opt digunakan secara default, yaitu. Semua opsi di atas diaktifkan secara default, meskipun tidak ditentukan. Untuk mengecualikan perilaku ini, Anda harus menggunakan parameter --skip-opt
  • --order-by-primary - Menentukan parameter menyebabkan hal ini terjadi. bahwa setiap tabel diurutkan berdasarkan kunci utama atau indeks unik pertama.
  • --port, -P — Nomor Pelabuhan TCP, digunakan untuk terhubung ke host.
  • —protocol=(TCP|SOCKET|PIPE|MEMORY) — Parameter ini memungkinkan Anda mengatur protokol untuk menyambung ke server.
  • —cepat, -q — Memungkinkan Anda mulai membuat dump tanpa menunggu beban penuh data dari server dan dengan demikian menghemat memori.
  • --quote-names, -Q — Menempatkan nama database, tabel, dan kolom di backticks `. Pada MySQL 4.1, opsi ini diaktifkan secara default.
  • --replace - Menambahkan kata kunci REPLACE ke pernyataan INSERT. Opsi ini pertama kali muncul di MySQL 5.1.3.
  • --result-file=/path/to/file, -r /path/to/file — Parameter mengirimkan dump ke berkas berkas. Opsi ini sangat berguna pada Windows, tanpa menggunakan baris perintah. ketika Anda dapat mengarahkan hasilnya ke file menggunakan urutan > dan >>.
  • --routines, -R — Opsi ini membuat dump prosedur dan fungsi tersimpan. Tersedia dengan MySQL 5.1.2.
  • --single-transaction - Opsi ini membuat dump sebagai satu transaksi.
  • —skip-comments — Parameter ini memungkinkan Anda menyembunyikan keluaran informasi tambahan ke dump.
  • --socket=/path/to/socket, -S /path/to/socket — File soket untuk menghubungkan ke localhost.
  • —tab=/path/, -T /path/ — Saat menggunakan parameter ini, dua tabel dibuat di direktori jalur untuk setiap tabel file terpisah: tbl_name.sql, yang berisi pernyataan CREATE TABLE, dan tbl_name.txt, yang berisi data tabel yang dibatasi tab. Format data dapat diganti secara eksplisit menggunakan opsi --fields-xxx dan --lines-xxx.
  • --tables - Mengganti parameter --databases (-B). Semua argumen yang mengikuti parameter ini diperlakukan sebagai nama tabel.
  • —triggers — Membuat kumpulan pemicu. Opsi ini diaktifkan secara default. Untuk menonaktifkannya, gunakan opsi --skip-triggers.
  • --events, -E — Membuat dump acara. Lihat Penjadwal Acara MySQL atau pengelola acara bawaan di MySQL.
  • --tz-utc - saat digunakan parameter ini operator formulir SET TIME_ZONE='+00:00′ akan ditambahkan ke dump, yang memungkinkan pertukaran dump di zona waktu berbeda.
  • --verbose, -v — Mode keluaran yang diperluas. Kesimpulan lebih lanjut informasi rinci tentang kerja program.
  • --version, -V — Menampilkan informasi tentang versi program.
  • —where=’where-condition’, -w ‘where-condition’ — Hanya membuang rekaman yang dipilih. Harap dicatat bahwa tanda kutip diperlukan.
  • --xml, -X — Mewakili dump database sebagai XML.
  • --first-slave, -x — Mengunci semua tabel di semua database.
  • —debug=…, -# — Pantau kemajuan program (untuk debugging).
  • --membantu — Keluaran informasi latar belakang dan keluar dari program.

Kegunaan mysqldump berfungsi untuk membuat cadangan dan memulihkan salinan cadangan (sering disebut "dumps") database dan tabel MySQL. Utilitas ini dirancang untuk baris perintah dan berjalan di bawah sistem operasi Windows, FreeBSD dan beberapa lainnya. Mysqldump adalah perangkat lunak yang didistribusikan secara gratis yang tidak memerlukan pembayaran apa pun.

Untuk salinan lokal Untuk database MySQL dengan tipe tabel ISAM dan MyISAM, lebih baik menggunakan utilitas yang ditulis dalam Perl: mysqlhotcopy. Ia bekerja jauh lebih cepat daripada mysqldump, karena ia menyalin seluruh file database *.frm, *.myd dan *.myi, setelah sebelumnya mengunci tabel. Juga untuk pengoperasian yang benar mysqlhotcopy memerlukan utilitas Unix: cp atau scp. Untuk tabel tipe InnoDB, mysqlhotcopy tidak akan berfungsi, karena tidak semua file tabel InnoDB disimpan di direktori database MySQL standar.

Contoh penggunaan mysqldump

Sintaks dasar mysqldump adalah:

mysqldump [PILIHAN] database [tabel]
mysqldump [ PILIHAN] -- database [ PILIHAN] DB1 [ DB2 DB3... ]
mysqldump [PILIHAN] -- semua database [PILIHAN]

Tanpa menentukan nama tabel atau menggunakan opsi --databases atau --all-databases, dump semua database yang terletak di MySQL akan diperoleh.

Tulis dump database dari lokasi yang jauh server MySQL dengan alamat 127.0.0.2 ke komputer lokal di file dump_db.sql:

mysqldump - uroot - h127.0.0.2 - p db_name > dump_db.sql

Pulihkan database MySQL db_name ke server jarak jauh di 127.0.0.2 dari tempat pembuangan sampah yang terletak di komputer lokal, di file dump_db.sql:

mysql - uroot - h127.0.0.2 - p db_name< dump_db.sql

Tulis dump database MySQL (database1, database2, database3) yang terletak di server jauh di 127.0.0.2 di berkas lokal dump_db.sql:

mysqldump - uroot - h127.0.0.2 - p - B database1 database2 database3 > dump_db.sql

Pengambilan sampel tidak lebih dari 50 catatan (misalnya, tidak diperlukan untuk pengujian salinan lengkap DB):

Salin database MySQL ke komputer jarak jauh:

mysqldump -- memilih basis data |

mysql -- host= jarak jauh- host - basis data C

Salin hanya struktur database MySQL:

mysqldump - uroot - hh127.0.0.2 - p -- tanpa data my_dbname > my_db_structure.sql Utilitas mysqldump, digunakan tanpa opsi --opt atau --quick, akan menulis seluruh hasil pekerjaannya ke memori sebelum membuang hasil pengambilan informasi. Hal ini dapat menyebabkan masalah saat membuang database yang besar. Perhatikan juga bahwa tidak perlu menggunakan opsi --opt atau -e jika Anda ingin menggunakannya untuk mendapatkan dump salinan baru

program mysqldump dan kemudian memainkannya di server MySQL yang sangat lama.

Semua parameter utilitas mysqldump dapat dilihat dengan menjalankannya seperti ini:

mysqldump --membantu Daftar standar parameter mysqldump dengan deskripsi singkat

diposting di bawah ini:
--tambahkan-jatuhkan-database

Menambahkan DROP DATABASE sebelum setiap pernyataan CREATE DATABASE.
--tambahkan-drop-tabel

Menambahkan DROP TABLE sebelum setiap pernyataan CREATE TABLE.
Menambahkan LOCK TABLES sebelum eksekusi dan UNLOCK TABLE setelah eksekusi setiap dump tabel (untuk mempercepat akses ke MySQL).

--semua-database, -A
Menyimpan semua tabel dari semua database yang dikelola oleh server saat ini.

--izinkan-kata kunci
Izinkan pembuatan nama kolom yang cocok dengan kata kunci. Konflik dapat dihindari dengan menambahkan nama tabel sebagai awalan pada nama setiap kolom.

--komentar, -i
Parameter ini memungkinkan Anda menambahkan informasi tambahan ke dump, seperti versi mysqldump, versi MySQL, dan nama host tempat server MySQL berada.

--kompak
Opsi ini memberitahu mysqldump untuk membuat dump menggunakan format sekompak mungkin. Opsinya adalah kebalikan dari --comments.

--kompatibel=nama
Opsi ini menghasilkan output yang kompatibel dengan DBMS lain atau MySQL versi lama. Alih-alih kata kunci nama, Anda dapat menggunakan: "ansi", "mysql323", "mysql40", "postgresql", "Oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "no_field_options" . Anda dapat menggunakan beberapa nilai, dipisahkan dengan koma.

--lengkap-masukkan, -c
Bentuk lengkap dari pernyataan INSERT (dengan nama kolom) digunakan.

--buat-pilihan
Menambahkan informasi tambahan ke pernyataan CREATE TABLE. Ini bisa berupa tipe tabel, nilai AUTO_INCREMENT awal, dan parameter lainnya.

--database, -B
Opsi ini memungkinkan Anda menentukan nama beberapa database yang ingin Anda buang.

--terlambat
Gunakan perintah INSERT DELAYED saat menyisipkan baris.

--hapus-master-log
Server replikasi utama secara otomatis menghapus log biner (logbin) setelah dump berhasil dibuat menggunakan mysqldump. Opsi ini secara otomatis mengaktifkan opsi "--master-data".

--nonaktifkan-kunci, -K

Untuk setiap tabel, kelilingi pernyataan INSERT dengan ekspresi /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; dan /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; dalam output hasil dump. Ini akan mempercepat pemuatan data ke server untuk tabel seperti MyISAM, karena indeks dibuat setelah semua data dimasukkan.

--masukkan-diperpanjang, -e
Gunakan perintah INSERT dengan sintaks multiline baru (meningkatkan kekompakan dan kinerja pernyataan masukan).

--flush-log, -F
Tulis data log sistem dari buffer server MySQL ke disk sebelum memulai dump.

--memaksa, -f
Lanjutkan meskipun terjadi kesalahan selama proses pembuatan dump.

--hex-gumpalan
Parameter ini memungkinkan Anda untuk merepresentasikan data biner dalam bidang tipe BINARY, VARBINARY, BLOB, dan BIT dalam format heksadesimal. Jadi urutan “abc” akan diganti dengan 0x616263.

--ignore-table=db_name.tbl_name
Memungkinkan Anda mengabaikan tabel tbl_name dari database db_name saat membuat dump. Jika Anda perlu mengecualikan beberapa tabel dari dump, Anda harus menggunakan beberapa parameter “--ignore-table”, yang menentukan satu tabel di setiap parameter.

--masukkan-abaikan
Menambahkan kata kunci IGNORE ke pernyataan INSERT.

--kunci-semua-tabel, -x
Menentukan opsi ini menyebabkan semua tabel di semua database dikunci saat dump penuh semua database dibuat.

--kunci-meja, -l
Menentukan parameter ini mengunci tabel dalam database yang sedang dibuang.

--tidak ada komitmen otomatis
Menyertakan semua pernyataan INSERT pada tabel yang sama dalam satu transaksi, sehingga menghasilkan pemuatan data yang lebih cepat.

--tidak-membuat-db, -n
Menekan pembuangan pernyataan CREATE DATABASE yang secara otomatis ditambahkan saat menggunakan opsi --databases dan --all-databases.

--tidak ada data, -d
Menekan pembuatan pernyataan INSERT di dump, yang dapat berguna saat membuang struktur database tanpa data itu sendiri.

--memilih
Parameter ini dimaksudkan untuk mengoptimalkan kecepatan pencadangan data dan merupakan singkatan yang mencakup opsi berikut: --quick --add-drop-table --add-locks --create-options --disable-keys --extend- masukkan --lock-tables --set-charset. Sejak MySQL 4.1, opsi --opt digunakan secara default, yaitu. Semua opsi di atas diaktifkan secara default, meskipun tidak ditentukan. Untuk mengecualikan perilaku ini, Anda harus menggunakan parameter --skip-opt

--pesanan-demi-utama
Menentukan parameter menyebabkan hal ini terjadi. bahwa setiap tabel diurutkan berdasarkan kunci utama atau indeks unik pertamanya.

--pelabuhan, -P
Nomor port TCP yang digunakan untuk terhubung ke host.

--protokol=(TCP|SOCKET|PIPA|MEMORI)
Parameter ini memungkinkan Anda mengatur protokol untuk menghubungkan ke server.

--cepat, -q
Memungkinkan Anda untuk mulai membuat dump tanpa menunggu data diunduh sepenuhnya dari server, sehingga menghemat memori.

--nama-kutipan, -Q
Mengapit nama database, tabel, dan kolom dengan tanda centang terbalik `. Pada MySQL 4.1, opsi ini diaktifkan secara default.

--mengganti
Menambahkan kata kunci REPLACE ke pernyataan INSERT. Opsi ini pertama kali muncul di MySQL 5.1.3.

--hasil-file=/jalur/ke/file, -r /jalur/ke/file
Opsi ini mengarahkan dump ke file. Opsi ini sangat berguna pada Windows, tanpa menggunakan baris perintah. ketika Anda dapat mengarahkan hasilnya ke file menggunakan urutan > dan >>.

--rutinitas, -R
Opsi ini membuat dump prosedur dan fungsi tersimpan. Tersedia dengan MySQL 5.1.2.

--transaksi tunggal
Opsi ini membuat dump sebagai satu transaksi.

--lewati-komentar
Parameter ini memungkinkan Anda untuk menyembunyikan keluaran informasi tambahan ke dump.

--socket=/jalur/ke/soket, -S /jalur/ke/soket
File soket untuk menghubungkan ke localhost.

--tab=/jalur/, -T /jalur/
Menggunakan opsi ini membuat dua file terpisah di direktori jalur untuk setiap tabel: tbl_name.sql, yang berisi pernyataan CREATE TABLE, dan tbl_name.txt, yang berisi data tabel yang dibatasi tab. Format data dapat diganti secara eksplisit menggunakan opsi --fields-xxx dan --lines-xxx.

--tabel
Mengganti opsi --databases (-B). Semua argumen yang mengikuti parameter ini diperlakukan sebagai nama tabel.

--pemicu
Dump pemicu dibuat. Opsi ini diaktifkan secara default. Untuk menonaktifkannya, gunakan opsi --skip-triggers.

--tz-utc
saat menggunakan parameter ini, operator seperti SET TIME_ZONE="+00:00" akan ditambahkan ke dump, yang memungkinkan pertukaran dump di zona waktu yang berbeda.

--verbose, -v
Mode keluaran lanjutan. Menampilkan informasi lebih rinci tentang pengoperasian program.

--versi, -V
Menampilkan informasi tentang versi program.

--where="kondisi di mana", -w "kondisi di mana"
Buang hanya rekaman yang dipilih. Harap perhatikan bahwa tanda kutip diperlukan: "--where=user="test"" "-wuserid>1" "-wuserid

--xml, -X
Mewakili dump database sebagai XML.

--budak pertama, -x
Mengunci semua tabel di semua database.

--debug=..., -#
Pantau kemajuan suatu program (untuk debugging).

--membantu
Bantuan ditampilkan dan program berakhir.

Mysqldump - dokumentasi dan contoh.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat