Sebagai salah satu database terkemuka yang tersedia secara bebas, MySQL adalah pilihan populer untuk banyak aplikasi web. Terekspos ke internet, aplikasi Anda terkena serangan berbahaya. Jika server Anda disusupi, paling banter, Anda perlu menginstal ulang aplikasi; paling buruk, Anda mungkin kehilangan data Anda. Selain itu, Anda mungkin mengalami situasi di mana Anda perlu memigrasikan database dari satu server ke server lainnya.
Untuk Apa mysqldump Digunakan?
Alat mysqldump telah membantu Anda untuk kompromi server dan situasi migrasi. Fungsi dasarnya adalah mengambil database MySQL dan membuangnya sebagai file teks. Tapi tidak ada file teks; file adalah satu set pernyataan SQL. Pernyataan-pernyataan ini, ketika dijalankan, merekonstruksi database ke keadaan yang tepat ketika dump dijalankan.
Gunakan mysqldump untuk membuat ekspor database sebagai cadangan, atau saat memindahkan database ke host baru. Dalam kedua kasus, file teks akan diimpor kembali ke server database MySQL. Ini akan mengeksekusi semua pernyataan SQL dalam file, yang membangun kembali database ke keadaan semula. Bagian ini tidak menggunakan perintah mysqldump, tetapi tidak akan mungkin tanpa utilitas ini juga.
Dokumen MySQL mencantumkan metode lain untuk membuat cadangan, tetapi metode ini memiliki kekurangan:
- Menyalin database dari MySQL Enterprise adalah cara yang bagus untuk mencapai pencadangan ini - jika Anda tidak keberatan dengan label harga Perusahaan.
- Menyalin direktori data database bisa jadi rumit saat berpindah antar sistem operasi, karena tujuannya akan berbeda.
- Mengekspor ke file teks yang dibatasi akan memberi Anda konten, tetapi Anda harus membuat ulang strukturnya.
- Anda sering dapat membuat cadangan database dari program GUI seperti MySQL Workbench. Tapi ini adalah proses manual; bukan sesuatu yang dapat Anda skrip atau sertakan dalam pekerjaan batch.
Instal Alat mysqldump
Untuk Windows, periksa instruksi kami untuk menginstal MySQL di Windows 7 (proses instalasi sama untuk Windows 10). Di macOS, lihat petunjuk kami untuk menginstal MySQL di macOS 10.7 (sekali lagi, lebih lama tetapi masih berlaku). Pengguna sistem Linux berbasis Ubuntu dapat menggunakan perintah berikut untuk menginstal klien dan utilitas MySQL:
sudo apt install mysql-client
Ekstrak MySQL Dump
Setelah terinstal, gunakan mysqldump untuk mendapatkan cadangan lengkap dari database.
mysqldump -h [nama atau IP host DB Anda] -u [nama pengguna DB] -p [nama database] > db_backup.sql
Berikut deskripsi flag yang digunakan dalam perintah ini:
- - h: Bendera ini adalah host basis data. Ini bisa berupa nama host lengkap (misalnya, myhost.domain.com) atau alamat IP. Biarkan kosong jika Anda menjalankan perintah pada host yang sama dengan server MySQL.
- - u: Nama pengguna Anda.
- - p: Jika Anda mengamankan instalasi MySQL dengan benar, Anda memerlukan kata sandi untuk terhubung. Bendera ini tanpa argumen meminta Anda memasukkan kata sandi saat Anda menjalankan perintah. Terkadang berguna untuk memberikan kata sandi secara langsung sebagai argumen untuk tanda ini, misalnya, dalam skrip cadangan. Tetapi saat diminta, Anda tidak boleh melakukannya, karena jika seseorang memperoleh akses ke komputer Anda, mereka bisa mendapatkan kata sandi ini di riwayat perintah.
- > db_backup.sql: Bagian ini memberitahu mysqldump untuk mengarahkan outputnya ke file. Biasanya, perintah mengeluarkan semuanya ke konsol, artinya Anda akan melihat beberapa pernyataan SQL di layar. Simbol > menyalurkan output ke file teks bernama. Jika file ini tidak ada, itu dibuat secara otomatis.
Setelah selesai, Anda akan memiliki file. SQL. Ini adalah file teks yang berisi pernyataan SQL. Anda dapat membukanya di editor teks apa pun untuk memeriksa isinya. Ini adalah ekspor dari database WordPress yang menunjukkan bagaimana file-file ini disatukan.
File dibagi menjadi beberapa bagian. Bagian pertama menyiapkan tabel untuk komentar WordPress. Bagian kedua membuat ulang konten dalam tabel tersebut (dalam contoh ini, catatan komentar). Saat Anda mengimpor ulang dump MySQL, perintah bekerja melalui file, mengeksekusi pernyataan, dan membangun kembali database seperti semula.
Impor File Dump MySQL
Sebelum mengimpor file dump, Anda memerlukan database yang sudah dibuat serta nama pengguna dan sandi yang valid. Anda juga harus memiliki semua izin untuk database. Anda tidak memerlukan izin HIBAH, tetapi lebih mudah untuk memberikan semuanya.
Pelajari lebih lanjut tentang izin basis data sebelum Anda mengubah peran keamanan dalam basis data Anda.
Untuk mengimpor ulang data Anda, masuk ke server MySQL dengan perintah mysql. Ketik use [nama database] pada prompt, dan ganti nama database. Masukkan source [nama file], dan ganti nama file dump yang Anda ambil sebelumnya.
Setelah selesai, daftar pesan akan muncul yang mencatat bahwa pernyataan SQL sedang dijalankan. Awasi kesalahan, tetapi jika Anda memiliki izin yang tepat, Anda akan baik-baik saja.
Ketika proses selesai, Anda akan memiliki duplikat dari database asli. Untuk memverifikasi kesamaan antara database, lakukan dump lain lalu bandingkan kedua output. Gunakan editor teks atau alat diff khusus untuk membandingkan kedua file.
Ada dua perbedaan antara file-file ini, seperti yang diwakili oleh garis merah di bagian atas dan bawah bilah gulir kanan. Yang pertama adalah baris yang berisi nama database, dan ini berbeda karena file diberi nama berbeda. Yang kedua adalah stempel waktu untuk file dump. Ini berbeda karena database kedua dibuat kembali setelah yang pertama. Jika tidak, file-file tersebut persis sama, artinya database yang menghasilkannya juga sama.
FAQ
Bagaimana Anda memperbaiki kesalahan mysqldump: Akses ditolak saat menggunakan tabel kunci?
Minta administrator database Anda untuk memberi Anda hak istimewa LOCK. Jika ini tidak menyelesaikan masalah, coba jalankan perintah mysqldump yang sama dengan menambahkan flag - -single-transaction, seperti [ $ mysqldump --single-transaction] [-u pengguna] [-p DBNAME] > backup.sql
Dapatkah Anda menggunakan klausa "di mana" dengan mysqldump?
Gunakan klausa WHERE saat membuat cadangan yang hanya menyertakan baris yang memenuhi kondisi yang diberikan. Misalnya, untuk membuang data hanya dari baris dengan kolom id lebih besar dari 100, masukkan "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql".