Postingan ini akan membahas Import dan Export database via CLI. Sebenarnya banyak cara mudah untuk melakukan hal tersebut, bisa menggunakan phpmyadmin, dbeaver, mysql workbench, mysqlyogs dll.
Tapi pada postingan ini kita bahas menggunakan CLI mode.
Export Database
Berikut syntax untuk export database
mysqldump -u nama_user -p nama_database > output_file.sql
Untuk basic syntaknya seperti contoh di atas. Tapi pada contoh diatas adalah mysql-server
berada di server yang sama dengan mysql-client
. Tambahkan opsi -h
untuk host jika mysql-server
berada di server yang berbeda dengan mysql-client
kita.
mysqldump -u nama_user -h ip_address -p nama_database > output_file.sql
Tapi kadang kala kita butuh untuk automation sehingga akan sulit ketika harus memasukan password secara manual, nah pada kasus tersebeut kita bisa menggunakan parameter --defaults-extra-file
. Dengan metode ini kita buat file .cnf
yang berisi kredensial dari mysqlnya, contohnya seperti berikut
[client]
user=root
password=qwerty
host=127.0.0.1
port=3306
kita asumsikan filenya bernama file.cnf
dan berikut cara menggunakanaya.
mysqldump --defaults-extra-file=file.cnf nama_database > output_file.sql
Perhatikan juga lock table saat mengexport database, untuk mengatasi hal tersebut tambahkan beberapa osi berikut
mysqldump --defaults-extra-file=file.cnf nama_database --single-transaction --no-tablespaces --column-statistics=0 > output_file.sql
Berikut penjelasanya:
--single-transaction: Opsi ini digunakan untuk memastikan bahwa mysqldump menggunakan transaksi tunggal saat mengambil salinan dari database. Ini berguna terutama ketika kita ingin mengamankan database tanpa memblokir tabel dan memungkinkan operasi baca dan tulis normal terus berlanjut selama proses pencadangan.
--no-tablespaces: Opsi ini menginstruksikan mysqldump untuk tidak menyertakan informasi tabel ruang tabel (tablespace) dalam perintah pencadangan. Tablespace adalah tempat penyimpanan fisik untuk tabel dalam MySQL. Dengan menggunakan opsi ini, pencadangan akan lebih independen dari lokasi fisik tabel.
--column-statistics=0: Opsi ini digunakan untuk mengatur jumlah kolom statistik yang disertakan dalam perintah pencadangan. Dengan nilai 0, mysqldump akan mengabaikan statistik kolom. Statistik kolom menyimpan informasi tentang distribusi data dalam kolom, dan ini dapat membantu optimizer dalam perencanaan eksekusi query. Namun, dalam beberapa kasus, terutama untuk database besar, menyertakan statistik kolom dapat meningkatkan ukuran pencadangan secara signifikan.
Nah, atau bisa juga lock table dengan menambahkan parameter --lock-table=false
, seperti berikut
mysqldump --defaults-extra-file=file.cnf nama_database --lock-table=false > output_file.sql
Kita juga bisa mengexport data pertabel dengan syntax berikut
mysqldump -u nama_user -p nama_database nama_tabel > output_file.sql
Import Database
Berikut syntax untuk mengimport file .sql
mysql -u nama_user -p nama_database < file.sql
Basic syntaxnya seperti contoh diatas, selebihnya saya tidak akan menjelaskan panjang lebar, silakan teman-teman coba.
Selamat mencoba.
Top comments (0)