MySQL User Tidak Bisa Konek Database

Saat menulis kumpulan tutorial hosting wordpress sendiri, aku mengalami error untuk menyambungkan koneksi ke database. Sehingga muncul error seperti gambar di bawah ini saat instalasi wordpress

Error Establishing a database connection

Bingunglah aku, semua sudah disetting dengan benar, tapi kok masih ada error. Udah tengok server block, konfigurasi php lha kok masih ada error.

Troubleshooting Koneksi Database

Pokoknya kalau muncul pesan “Error establishing a database connection” selalu ada masalah pada pengaturan database. Entah username, password, maupun nama database.

Oleh karena itu kita bisa coba troubleshooting dengan membuat sebuah file dengan nama cekdb.php (terserah mau pakai nama file apa).

Letakkan file tersebut di root folder domain supaya lebih mudah diakses. Waktu itu aku pakai domain igamerss.com dan menggunakan vps. Langsung jalankan perintah

sudo nano cekdb.php

Isi dengan kode di bawah ini

<?php
$servername = "localhost";
$database = "namadatabase";
$username = "usermysql";
$password = "passmysql";

// untuk tulisan bercetak tebal silakan sesuaikan dengan detail database Anda
// membuat koneksi
$conn = mysqli_connect($servername, $username, $password, $database);
// mengecek koneksi
if (!$conn) {
    die("Koneksi gagal: " . mysqli_connect_error());
}
echo "Nyambung Bos";
mysqli_close($conn);
?>

Kemudian coba jalankan file php tersebut dengan mengakses domainkamu.com/cekdb.php. Apabila muncul pesan error koneksi gagal, gak usah gupuh. Baca lanjutannya ya!

Coba ubah username dan password pada cekdb.php dengan username root dan password root mysql. Kemudian coba lagi akses domainkamu.com/cekdb.php. Apabila muncul pesan Nyambung Bos

Berarti kita mengalami masalah yang sama, dan beruntung aku sudah menemukan solusinya.

Kalau kamu ngikuti tutorialku, kamu sudah membuat log untuk errror. Coba buka log error nginx dengan perintah

tail -f /var/log/nginx/igamerss.com.error.log

Kamu akan menemukan pesan error seperti di bawah ini

[error] 92288#92288: *20 FastCGI sent in stderr: "PHP message: PHP Warning:  mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in /var/www/igamerss.com/html/cekdb.php on line 9PHP message: PHP Warning:  mysqli_connect(): (HY000/2054): The server requested authentication method unknown to the client in /var/www/igamerss.com/html/cekdb.php on line 9" while reading response header from upstream, client: 110.137.179.15, server: igamerss.com, request: "GET /cekdb.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock:", host: "igamerss.com"

Masalah ketemu, yaitu

PHP Warning:  mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in /var/www/igamerss.com/html/cekdb.php on line 9PHP

SOLVED caching_sha2_password Problem

Bagaimana cara mengatasinya? Pada VPS ini aku menggunakan php7.3 dan MySQL 8.0.

caching_sha2_password merupakan default autentikasi untuk MySQL 8.0 yang ndilalah belum didukung oleh php yang terinsall di VPS yaitu 7.3. Padahal, menurut artikel ini seharusnya php yang aku gunakan sudah bisa menggunakan caching_sha2_password

Kenapa kalau menggunakan root bisa? Karena pada saat instalasi, aku menggunakan mysql_native_password. Sehingga ketika menggunakan user root itu bisa.

Lalu bagaimana caranya? Langsung ikuti langkah-langkah berikut ini dengan login ke root mysql

mysql -u root -p

Kemudian jalankan perintah ini untuk mengetahui user apa saja yang menggunakan caching_sha2_password.

select host, user, plugin, authentication_string from mysql.user;

Maka akan muncul tabel seperti gambar di bawah ini

caching_sha2_password problem

Mohon maaf, untuk user gamer sudah aku ubah, tadinya menggunakan caching_sha2_password dan gak bisa konek. Akhirnya bisa konek setelah aku ubah menjadi mysql_native_password.

Cara mengubahnya bagaimana? Ikuti perintah

ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passwrodmu';

Kemudian keluar dari console mysql dengan perintah

exit;

lalu restart myqls dengan perintah

sudo service mysql restart

Sekarang seharusnya koneksi databasemu menggunakan user mysql non yang sudah di alter user bisa berjalan dengan normal dan kamu bisa melanjutkan instalasi wordpress

Nelateni nganggur dengan menulis blog. Ikuti aku di Facebook, Instagram, Twitter maupun Linkedin

Artikel Terkait

Leave a Comment