Skip to main content
  1. Posts/

Cara Export dan Import User MySQL

·2 mins·
mysql mysql
Table of Contents

Pada kondisi tertentu, Anda mungkin diminta untuk memindahkan website beserta database ke server lain. Tantangan yang sering muncul adalah harus membuat ulang setiap user MySQL, terutama jika di server lama terdapat banyak website atau aplikasi dengan user dan database yang berbeda-beda.

Berikut beberapa cara yang dapat Anda lakukan untuk memindahkan user MySQL ke server baru.

Mengedit authentication_string
#

Cara pertama adalah dengan menyalin dan menyamakan nilai authentication_string dari server lama ke server baru.

Misalnya, pada server lama terdapat user bob:

mysql> USE mysql;
mysql> SELECT user, host, authentication_string 
       FROM user 
       WHERE user='bob';
+------+-----------+-------------------------------------------+
| user | host      | authentication_string                     |
+------+-----------+-------------------------------------------+
| bob  | %         | *61584B76F6ECE8FB9A328E7CF198094B2FAC55C7 |
| bob  | localhost | *61584B76F6ECE8FB9A328E7CF198094B2FAC55C7 |
+------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

Langkah di server baru:

CREATE USER 'bob'@'localhost';
UPDATE mysql.user 
SET authentication_string='*61584B76F6ECE8FB9A328E7CF198094B2FAC55C7'
WHERE user='bob';

FLUSH PRIVILEGES;

⚠️ Catatan:

  • Pastikan versi MySQL sama atau kompatibel.
  • Pada MySQL versi terbaru (8.x), struktur tabel mysql.user bisa berbeda.
  • Metode ini tidak selalu direkomendasikan untuk produksi karena perubahan langsung pada tabel sistem berisiko.

Export Tabel user dan db
#

Cara kedua adalah mengekspor tabel yang menyimpan data user dan hak akses.

Di server lama jalankan:

mysqldump -t mysql user > user.sql
mysqldump -t mysql db > db.sql

Transfer file user.sql dan db.sql ke server baru, lalu import:

mysql mysql < user.sql
mysql mysql < db.sql

Terakhir, jalankan perintah berikut di MySQL:

FLUSH PRIVILEGES;

⚠️ Catatan:

  • Pastikan versi MySQL sama atau kompatibel.
  • Cara ini berisiko jika struktur tabel sistem berbeda antar versi.
  • Sebaiknya lakukan backup sebelum proses import.

Export User Menggunakan Script (Direkomendasikan)
#

Metode ini lebih aman karena menggunakan perintah resmi MySQL seperti SHOW CREATE USER dan SHOW GRANTS.

1. Ambil daftar user
#

mysql -u root -p -N -e \
"SELECT CONCAT(\"'\", user, \"'@'\", host, \"'\") 
 FROM mysql.user" > users.list

> users_grants.sql
while read uh; do
  # CREATE USER
  mysql -u root -p -e "SHOW CREATE USER $uh" >> users_grants.sql
  echo "" >> users_grants.sql
  
  # GRANTS
  mysql -u root -p -e "SHOW GRANTS FOR $uh" >> users_grants.sql
  echo "" >> users_grants.sql
done < users.list

Setelah file users_grants.sql terbentuk, pindahkan ke server baru dan jalankan:

mysql -u root -p < users_grants.sql

✅ Kelebihan metode ini:

  • Lebih aman
  • Tidak menyentuh langsung tabel sistem
  • Kompatibel untuk migrasi antar versi MySQL (dengan penyesuaian kecil)

Related

ERROR 1273 (HY000): Unknown collation Saat Import DB
·1 min
mysql mysql
Export Baris Tertentu dari Tabel MySQL
·1 min
mysql mysql
SQL Basics Cheat Sheet
·6 mins
mysql mysql
Fix ERROR 1031 (HY000) Table storage engine doesn't have this option
·1 min
mysql mysql
Cara Backup Database di MySQL
·4 mins
mysql mysql
Cara Menyimpan Output query MySQL ke File
·2 mins
mysql mysql