- 1 1. [Quick Answer] Daftar Perintah Perubahan Kata Sandi Pengguna MySQL (Solusi Tercepat)
- 1.1 1.1 Sintaks dasar (paling umum digunakan)
- 1.2 1.2 Mengubah pengguna akses remote (%)
- 1.3 1.3 Mengubah kata sandi sambil menentukan plugin otentikasi (penting di 8.0)
- 1.4 1.4 Jika Anda mendapatkan error hak istimewa
- 1.5 1.5 Cara memverifikasi setelah mengubah
- 1.6 1.6 Apa yang terjadi pada sesi yang sudah ada
- 2 2. Dasar-dasar Pengguna dan Host MySQL (Mencegah Masalah “Terjebak” Umum)
- 3 3. Prosedur yang Direkomendasikan: Ubah dengan Aman menggunakan ALTER USER (Berfungsi untuk MySQL 8.0 / 5.7)
- 4 4. Perbedaan Antara MySQL 8.0 dan 5.7
- 5 5. Memulihkan Kata Sandi root yang Terlupakan (Prosedur Berfokus pada Keamanan)
- 6 6. Kesalahan Umum dan Solusi (Tangkap Lalu Lintas berdasarkan Pesan Kesalahan)
- 7 7. Operasi Keamanan: Kebijakan Kata Sandi dan Praktik Terbaik
- 8 8. FAQ (Pertanyaan yang Sering Diajukan)
- 8.1 8.1 Q. Apa yang terjadi pada sesi aktif setelah mengubah kata sandi?
- 8.2 8.2 Q. Saya mengubah kata sandi tetapi masih tidak dapat masuk
- 8.3 8.3 Q. Bisakah saya mengizinkan hanya pengguna tertentu untuk mengubah kata sandi?
- 8.4 8.4 Q. Apakah metodenya sama di MariaDB?
- 8.5 8.5 Q. Apakah saya dapat memeriksa riwayat perubahan kata sandi?
- 8.6 8.6 Q. Apakah saya dapat memulihkan pengguna non-root dengan –skip-grant-tables?
- 9 9. Ringkasan
- 9.1 9.1 Gunakan ALTER USER sebagai metode standar
- 9.2 9.2 Pengguna dikelola sebagai “user@host”
- 9.3 9.3 Perhatikan plugin otentikasi di 8.0
- 9.4 9.4 Berhati-hatilah saat memulihkan kata sandi root
- 9.5 9.5 Sebagian besar kesalahan memiliki penyebab yang jelas
- 9.6 9.6 Dalam praktiknya, prinsip hak istimewa paling sedikit dan desain operasional paling penting
1. [Quick Answer] Daftar Perintah Perubahan Kata Sandi Pengguna MySQL (Solusi Tercepat)
Perintah dasar untuk mengubah kata sandi pengguna di MySQL adalah ALTER USER.
Metode ini direkomendasikan pada MySQL 5.7 dan yang lebih baru, dan digunakan dengan cara yang sama pada MySQL 8.0.
1.1 Sintaks dasar (paling umum digunakan)
ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';
username: nama pengguna target yang akan diperbaruilocalhost: host klien (sebuah akun MySQL diidentifikasi oleh “nama pengguna + host”)newpassword: kata sandi baru
Setelah dieksekusi, perubahan berlaku segera. Dalam kebanyakan kasus, FLUSH PRIVILEGES; tidak diperlukan (ALTER USER secara otomatis memperbarui tabel hak istimewa).
Kesalahan umum
- Bahkan dengan nama pengguna yang sama,
@'localhost'dan@'%'diperlakukan sebagai akun yang berbeda - Simbol dalam kata sandi harus diapit dengan tanda kutip tunggal
1.2 Mengubah pengguna akses remote (%)
ALTER USER 'username'@'%' IDENTIFIED BY 'newpassword';
% berarti “host apa saja”.
Ini biasanya digunakan di lingkungan cloud atau untuk pengguna yang diizinkan terhubung dari luar.
Catatan
- Lebih aman memeriksa terlebih dahulu dengan
SELECT User, Host FROM mysql.user; - Jika Anda mengubah kata sandi untuk Host yang salah, Anda tidak akan dapat masuk
1.3 Mengubah kata sandi sambil menentukan plugin otentikasi (penting di 8.0)
Pada MySQL 8.0, plugin otentikasi default adalah caching_sha2_password.
Jika Anda tidak dapat terhubung dengan klien lama, tetapkan plugin secara eksplisit.
ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'newpassword';
mysql_native_password: metode warisan (mengutamakan kompatibilitas)caching_sha2_password: standar MySQL 8.0 (direkomendasikan)
Kesalahan tipikal
- PHP atau klien lama mungkin tidak mendukung plugin default MySQL 8.0
- Menyimpulkan “Saya tidak dapat masuk” tanpa memeriksa plugin otentikasi
1.4 Jika Anda mendapatkan error hak istimewa
Contoh error:
ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s)
Dalam kasus ini, pengguna yang sedang masuk tidak memiliki izin untuk melakukan perubahan.
Periksa:
SHOW GRANTS FOR CURRENT_USER();
Jalankan perintah sebagai root atau sebagai pengguna dengan hak istimewa yang cukup.
1.5 Cara memverifikasi setelah mengubah
SELECT User, Host, plugin FROM mysql.user WHERE User='username';
- Periksa plugin otentikasi melalui kolom
plugin - Pemeriksaan paling dapat diandalkan adalah benar‑benarnya masuk dan mengonfirmasi konektivitas
1.6 Apa yang terjadi pada sesi yang sudah ada
Setelah mengubah kata sandi:
- Koneksi baru harus menggunakan kata sandi baru
- Sesi yang ada mungkin dihentikan segera tergantung pada lingkungan
- Di produksi, disarankan melakukan perubahan di luar jam kerja
2. Dasar-dasar Pengguna dan Host MySQL (Mencegah Masalah “Terjebak” Umum)
Di MySQL, pengguna tidak diidentifikasi hanya dengan “nama pengguna”. Sebaliknya, ia diidentifikasi oleh kombinasi “nama pengguna + host klien (Host)”. Jika Anda tidak memahami ini, Anda dapat mengalami masalah klasik: “Saya mengubah kata sandi tetapi masih tidak dapat masuk.”
2.1 Pengguna adalah pasangan “user@host”
Contoh:
'appuser'@'localhost''appuser'@'%''appuser'@'192.168.1.%'
Ini semua diperlakukan sebagai akun yang berbeda. Jadi bahkan jika Anda mengubah kata sandi untuk localhost, itu tidak memengaruhi akun %.
Perintah pemeriksaan:
SELECT User, Host FROM mysql.user ORDER BY User, Host;
Kesalahan umum
- Tidak menyadari ada beberapa akun dengan nama pengguna yang sama
- Anda mengubah kata sandi untuk
localhost, tetapi sebenarnya masuk melalui TCP (127.0.0.1)
2.2 localhost dan 127.0.0.1 diperlakukan berbeda
Di MySQL:
localhost→ koneksi socket UNIX (koneksi internal lokal)127.0.0.1→ koneksi TCP/IP
Tergantung pada lingkungan, akun yang berbeda mungkin cocok.
Periksa:
mysql -u username -p -h 127.0.0.1
Jika Anda tidak dapat masuk dengan yang di atas, akun @'127.0.0.1' mungkin tidak ada.
2.3 Periksa pengguna yang sedang diautentikasi
Penting untuk memahami “akun mana yang Anda autentikasi sebagai.”
SELECT CURRENT_USER();
Ini menampilkan “user@host” yang sebenarnya diautentikasi.
SELECT USER(); menunjukkan informasi permintaan koneksi, sehingga mungkin tidak cocok.
2.4 Periksa hak istimewa (SHOW GRANTS)
Jika Anda tidak dapat mengubah kata sandi, hak istimewa yang tidak cukup mungkin menjadi penyebabnya.
SHOW GRANTS FOR 'username'@'host';
Atau untuk pengguna yang saat ini masuk:
SHOW GRANTS FOR CURRENT_USER();
Hak istimewa minimum yang diperlukan
ALTER USER- Atau
SYSTEM_USER(MySQL 8.0 dan lebih baru)
2.5 Pola kegagalan umum
- Anda mengubah kata sandi untuk Host yang salah
- Plugin autentikasi berbeda (sangat umum di 8.0)
- Akun target tidak ada sejak awal
Periksa apakah pengguna ada:
SELECT User, Host FROM mysql.user WHERE User='username';
Setelah Anda memahami model ini, Anda dapat menghindari sebagian besar masalah terkait perubahan kata sandi.
3. Prosedur yang Direkomendasikan: Ubah dengan Aman menggunakan ALTER USER (Berfungsi untuk MySQL 8.0 / 5.7)
Di MySQL 5.7 dan selanjutnya, mengubah kata sandi dengan ALTER USER adalah pendekatan standar dan direkomendasikan.
Pembaruan langsung seperti UPDATE mysql.user dapat berperilaku berbeda tergantung pada versi dan membawa risiko kompatibilitas di masa depan, jadi sebaiknya dihindari.
3.1 Pemeriksaan Awal (Selalu konfirmasi sebelum mengubah)
Sebelum mengubah kata sandi, konfirmasikan tiga hal berikut.
① Konfirmasi pengguna dan Host target
SELECT User, Host FROM mysql.user WHERE User='username';
- Periksa apakah ada beberapa akun dengan nama pengguna yang sama
- Jangan bingungkan
localhostdengan%
② Konfirmasi plugin autentikasi saat ini (penting di 8.0)
SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';
caching_sha2_password(standar MySQL 8.0)mysql_native_password(plugin warisan)
Beberapa kegagalan koneksi disebabkan oleh plugin autentikasi.
③ Konfirmasi pengguna yang sedang diautentikasi
SELECT CURRENT_USER();
Untuk menghindari kesalahan hak istimewa, jalankan perintah sebagai root atau sebagai pengguna dengan hak istimewa yang sesuai.
3.2 Jalankan ALTER USER (bentuk standar)
ALTER USER 'username'@'localhost'
IDENTIFIED BY 'NewStrongPassword123!';
Perubahan berlaku segera.
Dalam kebanyakan kasus, FLUSH PRIVILEGES; tidak diperlukan.
Catatan
- Jika kebijakan kata sandi (
validate_password) dilanggar,ERROR 1819dapat terjadi - Jika kata sandi menyertakan karakter khusus, selalu letakkan dalam tanda kutip tunggal
3.3 Ubah sambil menentukan plugin autentikasi (hanya jika diperlukan)
Jika Anda menggunakan klien lama di lingkungan MySQL 8.0:
ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'NewStrongPassword123!';
Kasus di mana Anda harus mengubahnya:
- Tidak dapat terhubung dengan klien PHP lama / MySQL lama
- Lingkungan yang tidak mendukung
caching_sha2_password
Kasus di mana Anda tidak harus mengubahnya:
- Jika Anda sudah dapat terhubung tanpa masalah di lingkungan modern (plugin standar lebih aman)
3.4 Verifikasi setelah perubahan
① Verifikasi plugin autentikasi
SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';
② Verifikasi dengan benar-benar masuk
mysql -u username -p
Selalu uji bahwa Anda dapat masuk.
3.5 Dampak pada sesi yang ada
Setelah mengubah kata sandi:
- Koneksi baru → harus menggunakan kata sandi baru
- Koneksi yang ada → mungkin tetap tergantung pada lingkungan
- Produksi → restart koneksi aplikasi mungkin diperlukan
Kesalahan umum
- Tidak memperbarui kredensial koneksi aplikasi
- Kata sandi lama masih tersisa di file konfigurasi
3.6 Tips operasional aman untuk produksi
- Lakukan perubahan di luar jam kerja
- Periksa file konfigurasi aplikasi terlebih dahulu
- Lakukan pekerjaan tanpa memutus sesi SSH Anda
- Saat mengubah root, pastikan Anda memiliki metode pemulihan yang siap
4. Perbedaan Antara MySQL 8.0 dan 5.7
Penyebab terbesar masalah saat mengubah kata sandi MySQL adalah perbedaan metode autentikasi antara MySQL 8.0 dan 5.7.
Khususnya, banyak kasus “Saya mengubahnya tapi saya tidak bisa login” disebabkan oleh perbedaan plugin autentikasi.

Perbedaan autentikasi antara MySQL 5.7 dan MySQL 8.0
4.1 Perbedaan plugin autentikasi default
| Version | Default authentication plugin |
|---|---|
| MySQL 5.7 | mysql_native_password |
| MySQL 8.0 | caching_sha2_password |
Di MySQL 8.0, caching_sha2_password menjadi standar untuk keamanan yang lebih kuat.
Namun, klien lama (versi PHP lama, konektor MySQL lama, dll.) mungkin tidak mendukungnya.
Cara memeriksa:
SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';
Masalah umum
- Klien lama tidak dapat terhubung ke pengguna yang dibuat di MySQL 8.0
- Bahkan jika terjadi kesalahan, Anda tidak menyadari bahwa penyebab utamanya adalah plugin autentikasi
4.2 Cara mengalihkan plugin autentikasi untuk kompatibilitas
Hanya ketika Anda harus terhubung dari lingkungan lama, ubah seperti ini:
ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'NewStrongPassword123!';
Setelah mengubahnya, selalu jalankan tes koneksi.
Catatan
- Dari sudut pandang keamanan,
caching_sha2_passwordlebih aman - Jangan beralih ke plugin lama secara tidak perlu
- Jika memungkinkan, memperbarui sisi klien lebih disukai
4.3 UPDATE Langsung Tidak Direkomendasikan
Di MySQL 5.7 dan sebelumnya, metode seperti berikut digunakan:
UPDATE mysql.user
SET authentication_string=PASSWORD('newpassword')
WHERE User='username';
FLUSH PRIVILEGES;
Namun, pendekatan ini adalah:
- Sangat bergantung pada versi
- Tunduk pada perubahan spesifikasi di 8.0
- Kemungkinan akan ditinggalkan di masa depan
Aturan praktis: gunakan ALTER USER
4.4 Perbedaan perilaku plugin validate_password
Di MySQL 5.7 dan 8.0, fitur kebijakan kata sandi (pemeriksaan kekuatan) tersedia secara default.
Periksa:
SHOW VARIABLES LIKE 'validate_password%';
Jika Anda melanggar kebijakan, Anda mungkin mendapatkan:
ERROR 1819 (HY000)
.
Karena banyak lingkungan 8.0 menerapkan baseline keamanan yang lebih ketat,
setelah upgrade dari 5.7, Anda mungkin menemukan bahwa perubahan kata sandi tidak lagi lolos karena persyaratan kebijakan yang lebih kuat.
4.5 Cara Memeriksa Versi Anda
Jika Anda tidak yakin versi mana yang Anda jalankan:
SELECT VERSION();
Jika Anda menerapkan perbaikan tanpa mengonfirmasi versi, Anda mungkin berakhir menggunakan metode yang salah
5. Memulihkan Kata Sandi root yang Terlupakan (Prosedur Berfokus pada Keamanan)
Jika Anda lupa kata sandi pengguna root MySQL (administrator), Anda tidak dapat login secara normal.
Dalam kasus ini, Anda harus sementara menonaktifkan tabel grant dan mereset kata sandi. Namun, prosedur ini membawa risiko keamanan, jadi ikuti langkah-langkahnya dengan hati-hati.
5.1 Konfirmasi Apakah Anda Benar-Benar Membutuhkan Kata Sandi root
Pertama, periksa yang berikut:
- Apakah Anda memiliki hak istimewa
sudotingkat OS - Apakah autentikasi
auth_socketdiaktifkan (umum pada sistem berbasis Ubuntu)
Contoh pemeriksaan:
SELECT User, Host, plugin
FROM mysql.user
WHERE User='root';
Jika plugin adalah auth_socket, Anda mungkin dapat login sebagai pengguna root OS.
sudo mysql
Jika ini berhasil, Anda hanya perlu mereset kata sandi.
5.2 Alur Pemulihan (prosedur umum)
① Hentikan server MySQL
sudo systemctl stop mysql
② Mulai dengan tabel grant dinonaktifkan
sudo mysqld_safe --skip-grant-tables &
--skip-grant-tables menonaktifkan autentikasi.
Dalam keadaan ini, siapa pun dapat terhubung, jadi selesaikan prosedur dengan cepat.
③ Terhubung ke MySQL
mysql -u root
Anda dapat terhubung tanpa kata sandi.
④ Reset kata sandi root (metode yang direkomendasikan)
ALTER USER 'root'@'localhost'
IDENTIFIED BY 'NewStrongPassword123!';
Penting
- JANGAN langsung menggunakan
UPDATE mysql.user - Gunakan
ALTER USER(untuk kompatibilitas versi)
⑤ Aktifkan kembali tabel grant
FLUSH PRIVILEGES;
⑥ Restart MySQL dalam mode normal
sudo systemctl restart mysql
Kemudian verifikasi login normal:
mysql -u root -p
5.3 Kesalahan umum
- Meninggalkan
--skip-grant-tablesdiaktifkan (risiko keamanan serius) - Secara tidak sengaja mengubah Host root
- Mengubah plugin autentikasi secara salah dan mengunci diri sendiri
5.4 Catatan untuk lingkungan produksi
- Selalu lakukan ini selama jendela pemeliharaan pada server publik
- Jaga sesi SSH tetap aktif saat bekerja
- Buat cadangan terlebih dahulu jika memungkinkan
Pemulihan kata sandi root dapat dilakukan dengan aman jika dieksekusi dengan hati-hati.
6. Kesalahan Umum dan Solusi (Tangkap Lalu Lintas berdasarkan Pesan Kesalahan)
Beberapa kesalahan tipikal terjadi saat mengubah kata sandi MySQL.
Di bawah ini, kami mengorganisir penyebab umum dan solusi berdasarkan kode kesalahan yang sering dicari.
6.1 ERROR 1819 (Kata sandi tidak memenuhi persyaratan kebijakan)
Contoh kesalahan:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Penyebab
Kata sandi gagal validasi kekuatan yang diterapkan oleh plugin validate_password.
Periksa kebijakan saat ini
SHOW VARIABLES LIKE 'validate_password%';
Pengaturan penting:
validate_password.lengthvalidate_password.policyvalidate_password.mixed_case_countvalidate_password.number_countvalidate_password.special_char_count
Solusi ① (Direkomendasikan): Gunakan kata sandi yang lebih kuat
- Setidaknya 12 karakter
- Sertakan huruf besar, huruf kecil, angka, dan simbol
- Hindari kata-kata kamus
Solusi ② (Sementara longgarkan kebijakan)
SET GLOBAL validate_password.policy = LOW;
Setelah menyelesaikan tugas Anda, disarankan untuk mengembalikan pengaturan asli.
Kesalahan umum
- Meninggalkan kebijakan yang dilonggarkan di produksi
- Mengabaikan bahwa mengubah pengaturan ini memerlukan hak istimewa SUPER
6.2 ERROR 1227 (Hak istimewa tidak mencukupi)
Contoh kesalahan:
ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s)
Penyebab
Pengguna saat ini kekurangan hak istimewa ALTER USER atau SYSTEM_USER.
Periksa hak istimewa
SHOW GRANTS FOR CURRENT_USER();
Solusi
Jalankan perintah sebagai root atau sebagai pengguna dengan hak istimewa yang mencukupi.
Jika diperlukan:
GRANT ALTER USER ON *.* TO 'username'@'host';
FLUSH PRIVILEGES;
Catatan
- Di MySQL 8.0, hak istimewa
SYSTEM_USERmungkin juga diperlukan - Ikuti prinsip hak istimewa paling sedikit di produksi
6.3 Tidak dapat login setelah mengubah kata sandi
Penyebab utama
- Host yang salah
- Ketidakcocokan plugin autentikasi
- Ketidakcocokan klien
- Konfigurasi aplikasi tidak diperbarui
① Periksa Host
SELECT User, Host FROM mysql.user WHERE User='username';
② Periksa plugin autentikasi
SELECT plugin FROM mysql.user WHERE User='username';
③ Ubah plugin autentikasi (jika diperlukan)
ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'NewStrongPassword123!';
④ Periksa konfigurasi aplikasi
.envconfig.php- String koneksi (DSN)
Kesalahan umum
- Mengubah MySQL tetapi tidak memperbarui aplikasi
- Tidak me-restart container di lingkungan Docker
6.4 Masih dapat login dengan kata sandi lama setelah perubahan
Secara normal, perubahan yang dibuat dengan ALTER USER berlaku segera.
Penyebab yang mungkin:
- Anda sebenarnya mengubah akun Host yang berbeda
- Koneksi mengarah ke server lain (replica)
- Penyimpanan cache sesi
Periksa:
SELECT CURRENT_USER();
Sangat penting untuk mengonfirmasi dengan akurat baik server yang terhubung maupun pengguna yang terautentikasi.
7. Operasi Keamanan: Kebijakan Kata Sandi dan Praktik Terbaik
Mengubah kata sandi bukanlah tugas satu kali.
Dalam operasi dunia nyata, Anda menjaga keamanan dengan menggabungkan penegakan kekuatan, desain hak istimewa, dan aturan operasional.
7.1 Menggunakan plugin validate_password
MySQL menyediakan fungsionalitas bawaan untuk menegakkan kekuatan kata sandi.
Periksa pengaturan saat ini
SHOW VARIABLES LIKE 'validate_password%';
Parameter konfigurasi utama
validate_password.length(panjang minimum)validate_password.policy(LOW / MEDIUM / STRONG)validate_password.mixed_case_count(jumlah huruf campuran)validate_password.number_count(jumlah angka)validate_password.special_char_count(jumlah karakter khusus)
Contoh konfigurasi (minimum 12 karakter, kebijakan MEDIUM)
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.policy = MEDIUM;
Catatan
- Perubahan GLOBAL dapat direset setelah restart
- Untuk mempertahankan pengaturan, konfigurasikan mereka di file konfigurasi (
my.cnf/my.ini)
7.2 Persyaratan minimum untuk kata sandi yang kuat
Standar yang direkomendasikan dalam praktik:
- Setidaknya 12 karakter
- Sertakan huruf besar, huruf kecil, angka, dan simbol
- Hindari kata dari kamus
- Jangan gunakan kembali di layanan lain
Contoh:
X9v!pQ4z#Lm2
Contoh yang harus dihindari
password123
mysql2025
companyname!
7.3 Lebih penting daripada perubahan periodik
Lebih penting daripada “mengubah setiap enam bulan” adalah merancang dengan asumsi potensi kebocoran kredensial.
① Pisahkan pengguna aplikasi
- Jangan gunakan root dalam aplikasi
- Buat pengguna dengan hak istimewa paling sedikit
Contoh:
GRANT SELECT, INSERT, UPDATE ON dbname.* TO 'appuser'@'localhost';
② Minimalkan hak istimewa (Prinsip Hak Istimewa Minimum)
Izinkan hanya operasi yang diperlukan untuk membatasi potensi kerusakan.
③ Gunakan audit dan log
Contoh pemeriksaan log:
tail -f /var/log/mysql/mysql.log
MySQL Enterprise juga mendukung plugin audit.
7.4 Tips operasional untuk lingkungan produksi
- Uji di staging sebelum melakukan perubahan produksi
- Lacak riwayat perubahan (Git atau dokumentasi)
- Selalu jalankan tes koneksi setelah perubahan
- Jaga sesi SSH Anda tetap aktif saat bekerja
7.5 Hal-hal yang tidak boleh Anda lakukan
- Gunakan akun root dalam aplikasi
- Menyisipkan kata sandi secara keras dalam kode sumber
- Nonaktifkan
validate_passworddan biarkan begitu - Biarkan server berjalan dengan
--skip-grant-tables
Manajemen kata sandi bukan tugas sekali saja melainkan bagian dari desain operasional berkelanjutan.
8. FAQ (Pertanyaan yang Sering Diajukan)
8.1 Q. Apa yang terjadi pada sesi aktif setelah mengubah kata sandi?
A. Pada prinsipnya, koneksi baru memerlukan kata sandi baru.
Untuk sesi yang ada, mereka dapat langsung dihentikan atau tetap aktif tergantung pada lingkungan dan konfigurasi.
Dalam praktik:
- Lakukan perubahan di luar jam kerja pada produksi
- Restart aplikasi untuk menyegarkan koneksi
disarankan.
8.2 Q. Saya mengubah kata sandi tetapi masih tidak dapat masuk
Tiga penyebab paling umum adalah:
- Host salah (
localhostvs%, dll.) - Ketidaksesuaian plugin otentikasi (sangat umum di 8.0)
- Konfigurasi aplikasi tidak diperbarui
Periksa dengan:
SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';
Perhatikan khusus kolom plugin.
8.3 Q. Bisakah saya mengizinkan hanya pengguna tertentu untuk mengubah kata sandi?
Ya.
GRANT ALTER USER ON *.* TO 'username'@'host';
FLUSH PRIVILEGES;
Di MySQL 8.0, hak istimewa SYSTEM_USER mungkin juga diperlukan.
SHOW GRANTS FOR 'username'@'host';
Gunakan ini untuk memverifikasi hak istimewa.
8.4 Q. Apakah metodenya sama di MariaDB?
Pada dasarnya, ALTER USER tersedia, tetapi:
- Plugin otentikasi
- Perilaku kebijakan kata sandi
- Perbedaan spesifik versi
bisa berbeda tergantung pada lingkungan.
Periksa dengan:
SELECT VERSION();
MySQL Community Edition tidak menyediakan pelacakan riwayat kata sandi bawaan secara default.
8.5 Q. Apakah saya dapat memeriksa riwayat perubahan kata sandi?
Pendekatan yang mungkin:
- Aktifkan pencatatan audit
- Gunakan manajemen log eksternal
- Lacak riwayat dalam dokumentasi operasional
Contoh:
tail -f /var/log/mysql/mysql.log
8.6 Q. Apakah saya dapat memulihkan pengguna non-root dengan –skip-grant-tables?
Ya, tetapi hal ini menciptakan keadaan yang sangat berbahaya.
Selalu kembali ke mode normal segera setelah menyelesaikan prosedur.
9. Ringkasan
Mengubah kata sandi MySQL mungkin terlihat sederhana, tetapi tanpa memahami model user@host, plugin otentikasi, dan desain hak istimewa, hal ini dapat dengan mudah menimbulkan masalah.
Poin-poin utama dari artikel ini adalah:
9.1 Gunakan ALTER USER sebagai metode standar
ALTER USER 'username'@'localhost'
IDENTIFIED BY 'NewStrongPassword123!';
- Metode standar di MySQL 5.7 dan yang lebih baru
UPDATE mysql.usersecara langsung tidak disarankanFLUSH PRIVILEGESbiasanya tidak diperlukan
9.2 Pengguna dikelola sebagai “user@host”
localhostdan%adalah akun yang berbeda- Beberapa akun dengan nama pengguna yang sama dapat ada
- Periksa dengan
SELECT User, Host FROM mysql.user;
9.3 Perhatikan plugin otentikasi di 8.0
- Default 8.0:
caching_sha2_password - Kompatibilitas lama:
mysql_native_password - Jika Anda tidak dapat terhubung, periksa kolom
pluginSELECT plugin FROM mysql.user WHERE User='username';
9.4 Berhati-hatilah saat memulihkan kata sandi root
--skip-grant-tableshanya merupakan langkah sementara- Selalu kembali ke mode normal setelah selesai
- Lakukan selama jendela pemeliharaan di produksi
9.5 Sebagian besar kesalahan memiliki penyebab yang jelas
- ERROR 1819 → Pelanggaran kebijakan kata sandi
- ERROR 1227 → Hak istimewa tidak cukup
- Tidak dapat masuk → Ketidaksesuaian host atau plugin otentikasi
9.6 Dalam praktiknya, prinsip hak istimewa paling sedikit dan desain operasional paling penting
- Jangan gunakan root dalam aplikasi
- Buat pengguna khusus
- Terapkan kebijakan kata sandi yang kuat
- Selalu uji koneksi setelah perubahan
Manajemen kata sandi MySQL bukan hanya tentang mengubah nilai—ini adalah dasar dari operasi basis data yang aman.
Pilih metode yang tepat untuk lingkungan Anda dan jalankan dengan hati-hati.


