Skip to main content
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Cara Import dan Export Database MySQL

ยท 4 min read
Ilhamsyah
Maintainer

Anda perlu memindahkan database dari server lama ke server baru, atau mengambil salinan data untuk keperluan migrasi. Proses export dan import database MySQL adalah tugas rutin yang harus dikuasai oleh setiap sysadmin dan developer.

Kesalahan dalam proses ini bisa menyebabkan data hilang atau struktur database rusak. Panduan ini membahas cara export dan import database MySQL dengan aman, baik melalui command line maupun file SQL.

Prasyaratโ€‹

  • Server Nusa Cloud VPS dengan MySQL terinstal
  • Akses root atau user MySQL dengan hak SELECT, LOCK TABLES, CREATE, ALTER, INSERT
  • Ruang disk yang cukup untuk menampung file hasil export

Export Database dengan mysqldumpโ€‹

mysqldump adalah utilitas bawaan MySQL untuk membuat backup logical โ€” berupa kumpulan perintah SQL yang bisa dijalankan kembali untuk merekonstruksi database.

Export Satu Databaseโ€‹

mysqldump -u root -p nama_database > nama_database_$(date +%F).sql

Perintah di atas menghasilkan file SQL yang berisi struktur tabel dan data dari database yang ditentukan. Flag -p akan meminta password MySQL.

Export Beberapa Database Sekaligusโ€‹

mysqldump -u root -p --databases db1 db2 db3 > multi_db_$(date +%F).sql

Opsi --databases memungkinkan export lebih dari satu database dalam satu file. File hasil export akan menyertakan perintah CREATE DATABASE sehingga database tujuan tidak perlu dibuat terlebih dahulu.

Export Semua Databaseโ€‹

mysqldump -u root -p --all-databases > all_databases_$(date +%F).sql

Opsi ini mencadangkan seluruh database di server MySQL โ€” termasuk tabel system seperti mysql, sys, dan performance_schema. Gunakan opsi ini jika Anda perlu memigrasikan seluruh instance MySQL.

Export Tanpa Data (Hanya Struktur)โ€‹

mysqldump -u root -p --no-data nama_database > struktur_nama_database.sql

Berguna saat Anda hanya membutuhkan skema tabel โ€” misalnya untuk dokumentasi atau replikasi struktur ke environment staging.

Export Database Tertentu Saja (WHERE)โ€‹

mysqldump -u root -p nama_database nama_tabel --where="tanggal >= '2026-01-01'" > data_partial.sql

Dengan opsi --where, Anda hanya mengekspor baris yang memenuhi kondisi tertentu. Ini membantu saat ukuran database sangat besar dan Anda hanya membutuhkan data periode tertentu.

Kompresi File Exportโ€‹

Untuk database berukuran besar, file SQL bisa mencapai puluhan gigabyte. Kompresi langsung saat export menghemat ruang disk dan waktu:

mysqldump -u root -p nama_database | gzip > nama_database_$(date +%F).sql.gz

Untuk membacanya nanti, gunakan zcat:

zcat nama_database_2026-06-09.sql.gz | mysql -u root -p nama_database_baru

Import Database MySQLโ€‹

Ada dua metode utama untuk mengimpor database: menggunakan mysql command dan menggunakan source di dalam MySQL shell.

Import dengan mysql Commandโ€‹

mysql -u root -p nama_database_baru < nama_database_2026-06-09.sql

Pastikan database tujuan sudah dibuat sebelum menjalankan import:

CREATE DATABASE IF NOT EXISTS nama_database_baru;

Import File Terkompresiโ€‹

gunzip < nama_database_2026-06-09.sql.gz | mysql -u root -p nama_database_baru

Import dari MySQL Shellโ€‹

mysql -u root -p

Kemudian di dalam shell MySQL:

USE nama_database_baru;
SOURCE /path/to/nama_database_2026-06-09.sql;

Metode ini berguna saat Anda sudah berada di dalam sesi MySQL dan ingin mengimpor file dari lokasi tertentu.

Pertimbangan untuk Database Besarโ€‹

Jika ukuran database di atas 1 GB, beberapa penyesuaian diperlukan agar proses import berjalan stabil.

Tingkatkan Timeoutโ€‹

Tambahkan parameter berikut saat menjalankan import:

mysql -u root -p --max_allowed_packet=512M --net_buffer_length=16384 nama_database < file.sql

Gunakan mysqlimportโ€‹

Untuk file yang sudah dalam format CSV atau TSV, gunakan mysqlimport:

mysqlimport -u root -p --local nama_database /path/to/file.csv

Nonaktifkan Sementara Foreign Key Checkโ€‹

Saat mengimpor data dengan relasi foreign key, urutan import bisa menyebabkan error. Nonaktifkan sementara:

SET FOREIGN_KEY_CHECKS = 0;
SOURCE /path/to/file.sql;
SET FOREIGN_KEY_CHECKS = 1;

Verifikasiโ€‹

Setelah import selesai, lakukan verifikasi:

# Cek jumlah tabel
mysql -u root -p -e "USE nama_database_baru; SHOW TABLES;"

# Cek jumlah baris
mysql -u root -p -e "USE nama_database_baru; SELECT COUNT(*) FROM nama_tabel;"

# Cek ukuran database
mysql -u root -p -e "SELECT table_schema AS 'Database', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' FROM information_schema.tables WHERE table_schema = 'nama_database_baru' GROUP BY table_schema;"

Pastikan jumlah tabel, jumlah baris, dan ukuran database sesuai dengan sumber aslinya.

Ringkasan Perintahโ€‹

OperasiPerintah
Export satu databasemysqldump -u root -p db > db.sql
Export semua databasemysqldump -u root -p --all-databases > all.sql
Export hanya strukturmysqldump -u root -p --no-data db > struktur.sql
Export dengan kompresimysqldump -u root -p db | gzip > db.sql.gz
Import file SQLmysql -u root -p db < db.sql
Import terkompresigunzip < db.sql.gz | mysql -u root -p db
Import via MySQL shellSOURCE /path/to/file.sql

Butuh Bantuan?โ€‹

Jika mengalami error saat import atau export โ€” seperti "The input is a MySQL connection", "Access denied", atau "Table doesn't exist" โ€” buka Tiket Bantuan dengan menyertakan pesan error lengkap dan output dari mysql --version.