Saya seringkali kesulitan ketika import file SQL yang besar. Awalnya saya melalui situs seperti phpMyAdmin atau aplikasi GUI seperti Laragon atau DBeaver, namun sering gagal di tengah jalan. Hasil import hanya jalan 60-70%, muncul error timeout atau connection lost. Ini yang membuat saya kesal, karena data yang saya butuhkan tidak tersedia 100%.
Setelah beberapa kali gagal, saya memutuskan untuk beralih ke command line. Ternyata hasilnya jauh lebih baik dan reliable. Tidak ada lagi masalah timeout atau import yang berhenti di tengah jalan. Karena itu, saya ingin berbagi cara-cara yang saya gunakan saat ini.
Cara Paling Simpel
Ini adalah cara yang paling sering saya gunakan, sederhana dan tidak pernah gagal:
mysql -u username -p nama_database < /path/to/file.sql
Misalnya Anda memiliki file backup.sql di folder Downloads dan ingin import ke database mydatabase:
mysql -u root -p mydatabase < ~/Downloads/backup.sql
Nanti akan diminta password MySQL, masukkan passwordnya. Kemudian tunggu hingga proses selesai. Berbeda dengan GUI, metode ini pasti selesai sampai 100%, tidak ada cerita berhenti di tengah jalan.
Mengapa Command Line Lebih Baik?
Berdasarkan pengalaman saya:
- Tidak ada timeout: phpMyAdmin atau GUI lainnya memiliki batas waktu eksekusi. Jika file SQL berukuran besar, sering tidak sempat selesai.
- Memory limit tidak menjadi masalah: GUI biasanya memiliki batasan memory yang ketat. Command line jauh lebih fleksibel.
- Bisa tracking progress: Kita dapat menggunakan tools seperti
pvuntuk melihat progress secara real-time. - Lebih stabil: Tidak ada JavaScript error, tidak ada koneksi browser yang terputus tiba-tiba.
Import dari Dalam MySQL
Kadang saya lebih suka masuk dulu ke MySQL shell-nya, baru import dari dalam. Caranya gini:
mysql -u root -p
Setelah masuk, pilih database yang mau diisi, terus jalankan SOURCE command:
USE nama_database;
SOURCE /home/user/backup.sql;
Cara ini enak karena kita bisa langsung eksekusi query lain kalau perlu, tanpa keluar masuk MySQL berkali-kali.
Kalau Database-nya Belum Ada
Nah ini yang sering kejadian, kita dapat file SQL tapi database-nya belum dibuat. Solusinya gampang, bikin dulu:
# Bikin database baru
mysqladmin -u root -p create nama_database
# Baru import
mysql -u root -p nama_database < file.sql
Atau bisa juga bikin database-nya dari MySQL shell langsung:
mysql -u root -p -e "CREATE DATABASE nama_database;"
mysql -u root -p nama_database < file.sql
Tips Buat File SQL yang Besar Banget
Ini yang dulu sering bikin saya gagal pas pakai GUI. File SQL 500MB keatas? Lupakan deh pakai phpMyAdmin. Mending langsung command line dengan parameter khusus:
mysql -u root -p nama_database < file.sql --max_allowed_packet=512M
Atau kalau mau lebih seru, pakai pv biar bisa lihat progress bar-nya. Ini penting banget buat file besar, jadi kita tahu udah jalan berapa persen:
pv file.sql | mysql -u root -p nama_database
Install pv dulu ya:
sudo apt install pv
Enak banget lihat progress bar jalan, nggak kayak GUI yang kadang cuma stuck di satu angka terus tiba-tiba error.
File SQL yang Dikompress
Kadang file SQL di-compress jadi .gz biar nggak makan storage. Nggak perlu extract dulu, bisa langsung import:
gunzip < backup.sql.gz | mysql -u root -p nama_database
Atau kalau format .zip:
unzip -p backup.sql.zip | mysql -u root -p nama_database
Ini juga ngirit waktu dan storage, soalnya nggak perlu extract dulu yang bikin butuh space dua kali lipat.
Kalau Ada Masalah
Access Denied? Cek lagi username sama password-nya. Atau mungkin user-nya nggak punya akses ke database tersebut.
Database doesn't exist? Ya bikin dulu database-nya pakai cara yang saya jelasin di atas.
maxallowedpacket too small?
Tambahin parameter --max_allowed_packet atau edit file config MySQL di /etc/mysql/mysql.conf.d/mysqld.cnf.
Import berhenti tapi nggak ada error?
Coba cek log MySQL di /var/log/mysql/error.log buat tahu masalahnya apa.
Penutup
Sejak beralih ke command line, saya nggak pernah lagi mengalami drama import SQL yang gagal di tengah jalan. Kalau kamu masih pakai GUI dan sering ngalamin masalah yang sama seperti saya dulu, coba deh switch ke command line. Emang awalnya keliatan ribet, tapi setelah biasa, ini jauh lebih praktis dan pasti berhasil.
Yang penting kamu udah tahu berbagai opsinya, tinggal pilih yang paling nyaman buat kamu. Thanksss