Kesalahan tersebut terjadi karena sejak MySQL versi 8.0, perintah GRANT tidak lagi mendukung pembuatan user sekaligus pemberian hak akses dalam satu baris menggunakan klausa IDENTIFIED BY.
Sekarang, MySQL memisahkan proses pembuatan user dan pemberian hak akses menjadi dua langkah yang berbeda.
Solusi: Cara Memperbaiki Error 1064
Anda harus membagi perintah tersebut menjadi dua tahap: Buat User dulu, baru kemudian Berikan Hak Akses.
1. Buat User Terlebih Dahulu
CREATE USER 'pandito'@'localhost' IDENTIFIED BY 'rahasiapass';
2. Berikan Hak Akses
GRANT ALL PRIVILEGES ON *.* TO 'pandito'@'localhost' WITH GRANT OPTION;
3. Segarkan Hak Akses
FLUSH PRIVILEGES;
Mengapa Aturan Ini Berubah?
Perubahan ini dilakukan oleh tim pengembang MySQL untuk meningkatkan keamanan dan struktur perintah. Klausa IDENTIFIED BY di dalam GRANT dianggap sebagai perilaku lama (deprecated) yang sering membingungkan dan berisiko secara keamanan.
Perbandingan Sintaks:
| Versi MySQL | Sintaks Gabungan | Hasil |
|---|---|---|
| MySQL 5.7 ke bawah | GRANT ALL... IDENTIFIED BY 'pass'; |
Berhasil ✅ |
| MySQL 8.0 ke atas | GRANT ALL... IDENTIFIED BY 'pass'; |
Error 1064 ❌ |
Tips Tambahan
Jika user 'pandito'@'localhost' sebenarnya sudah ada dan Anda hanya ingin mengganti passwordnya, gunakan perintah ini:
ALTER USER 'pandito'@'localhost' IDENTIFIED BY 'password_baru';
Apakah Anda sedang mengonfigurasi server MySQL yang baru diinstal?
Top comments (0)