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
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
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
Leave a Comment