Cara Mengatasi Error Establishing A Database Connection (WordPress)

Error establishing a database connection.

Kalimat diatas mungkin adalah mimpi buruk bagi para pengguna WordPress dan merupakan salah satu error pada WordPress yang sering terjadi.

Jika Anda mendapat pesan ini, berarti website Anda sudah tidak lagi berkomunikasi dengan atau memiliki akses ke database Anda, yang tentunya menyebabkan website Anda down.

Kebanyakan orang biasa menjadi panik ketika mereka mendapat pesan ini saat akan mengakses website mereka. Padahal, jika Anda kebetulan mendapat pesan ini, Anda harus bergerak cepat dalam proses penanganannya karena isu ini bisa mempengaruhi traffic, sales, dan analisis Anda.

Mungkin Anda bingung bagaimana cara memperbaikinya? Mungkin Anda tidak mengerti mengapa Anda mendapat pesan seperti itu? Jangan khawatir! Di artikel ini, kami akan membahas beberapa skenario yang biasanya menyebabkan ini terjadi dan bagaimana untuk memperbaiki isu ini.

Tetapi, sebelum kita membahas cara mengatasinya, kita perlu mengerti dulu apa sebenarnya pesan error establishing a database connection itu dan mengapa kita terkadang mendapat pesan itu saat akan mengakses sebuah website, baik dari front-end maupun back-end?

Apa itu error establishing a database connection?

Semua informasi yang tersedia di situs WordPress Anda, seperti post data, page data, meta information, plugin settings, login information, etc. disimpan di MySQL Database Anda. Beberapa data yang tidak tersimpan di database itu hanya konten media seperti gambar dan tema atau plugin Anda, serta core files seperti index.php, wp-login.php, dan sebagainya.

Ketika seseorang mengunjungi website Anda, PHP akan mengeksekusi kode di halaman dan meminta data dari database, yang kemudian akan disajikan kepada browser pengunjung.

Jika PHP tidak dapat meminta data dari database, Anda akan menerima pesan “Error establishing a database connection”. Seluruh halaman akan kosong karena tidak ada data yang didapatkan untuk ditunjukkan di layar browser. Bukan hanya mengganggu front end website Anda, hal ini juga bisa membuat Anda tidak dapat mengkases dashboard WordPress Anda.

Ketika seseorang mengunjungi website Anda dan mendapat pesan tersebut, ini akan mengeluarkan 500 HTTP status code di logs Anda. Kode status ini akan muncul ketika website Anda mengalami “internal server error”. Ini berarti ada sesuatu yang salah di server Anda dan resource yang diminta tidak dikirimkan oleh server. Jika semua bekerja dengan baik, website Anda akan mengeluarkan 200 HTTP status code, yang berarti semuanya baik-baik saja.

Penyebab error establishing a database connection

Sebelum kami membahas cara mengatasinya, tentunya kita perlu mengenali dulu apa saja penyebab munculnya pesan error establishing a database connection. Berikut adalah beberapa penyebab yang paling sering ditemukan saat seseorang menerima pesan ini:

  • Kredensial login database salah. Website WordPress Anda menggunakan informasi login terpisah untuk terhubung dengan MySQL Database.
  • Database rusak. Dengan banyaknya bagian yang terus berubah-ubah dengan tema, plugin, dan pengguna yang terus-menerus menghapus dan menginstalnya, terkadang database menjadi rusak. Ini bisa disebabkan oleh tabel yang hilang atau rusak secara individual, atau mungkin beberapa informasi tidak sengaja terhapus.
  • Ada file yang rusak dengan instalasi WordPress. Masalah ini juga bisa terjadi karena hackers.
  • Ada masalah dengan server database Anda. Ada beberapa hal yang sebenarnya adalah kesalahan dari hosting, seperti overload database dari traffic yang diganggu atau server menjadi tidak responsif karena mendapat terlalu banyak permintaan. Masalah seperti ini biasa terjadi dengan website yang menggunakan shared hosts karena mereka menggunakan banyak resource bersamaan dengan pengguna lain di server yang sama.

Cara Mengatasi Error Establishing a Database Connection

Sebelum Anda memulai proses troubleshooting, sebaiknya Anda melakukan backup. Cara-cara yang akan dibahas di bawah akan memanipulasi informasi di database Anda. Karena itu, ada baiknya Anda melakukan backup data situs Anda sebelum Anda memperbaiki website WordPress Anda. WordPress juga menawarkan plugin backup seperti UpdraftPlus atau Duplicator untuk membackup file dan database Anda.

Jika Anda ingin membackup file dengan manual, Anda bisa membackup file dengan menggunakan phpMyAdmin di cPanel Anda. Setelah Anda selesai membackup website Anda, baru Anda mulai proses troubleshooting masalah koneksi database Anda.

1. Cek Kredensial Login Database

Hal pertama yang harus Anda cek adalah bahwa kredensial login database Anda sudah benar. Ini adalah salah satu alasan paling sering kenapa pesan error establishing a database connection muncul di sebuah situs. Terutama setelah seseorang migrasi website mereka ke hosting baru.

Detail koneksi situs WordPress Anda disimpan di sebuah file bernama wp-config.php, yang biasanya ada di root situs WordPress Anda. File ini mengandung empat informasi penting yang semuanya harus dipastikan sudah benar agar koneksi dapat berjalan dengan baik.

Database Name

// ** MySQL settings ** //

/** The name of the database for WordPress */ define( ‘DB_NAME’ , ‘xxxxxx’ );

MySQL Database Username

/** MySQL database username */

define( ‘DB_USER’ , ‘xxxxxx’ );

MySQL Database Password

/** MySQL database password */

define( ‘DB_PASSWORD’ , ‘xxxxxxxxx’ );

MySQL HostName (Server)

/** MySQL hostname */

define( ‘DB_HOST’ , ‘localhost’ );

Untuk mengakses file wp-config.php, Anda bisa terhubung ke situs Anda melalui SFTP dan menjelajahi root situs Anda. Atau jika Anda menggunakan cPanel, Anda bisa klik “File Manager”, jelajahi root situs Anda, dan klik kanan untuk mengedit file.

file manager

Pilih public_html di bagian kiri layar Anda kemudian klik kanan di file wp-config.php.

public_html

File wp-config.php akan terlihat seperti di bawah ini

wp_config

Anda sekarang perlu memeriksa nilai saat ini terhadap yang ada di server Anda untuk memastikan bahwa mereka benar. Anda perlu mengecek database credentials Anda di cPanel. Yang perlu Anda cek pertama kali adalah database name. Untuk melaukan ini, Anda perlu login ke phpMyAdmin di cPanel di bawah bagian Databases.

Di bagian sebelah kiri, Anda akan melihat nama database Anda di bagian paling bawah. Anda tidak perlu menghiraukan database “information_schema” karena ini adalah sesuatu yang digunakan oleh host. Anda kemudian ingin melihat nama server Anda dengan nama yang ada di DB_NAME di file wp-config.php. Jika mereka sama, berarti website Anda baik-baik saja. Jika berbeda, Anda perlu mengupdate file wp-config.php Anda.

Anda juga dapat memverifikasi bahwa ini adalah database yang benar dengan memastikan bahwa situs tersebut berisi URL situs WordPress Anda. Untuk melakukan ini, cukup klik pada database, lalu klik ke tabel wp_options (ini mungkin dinamai sesuatu yang sedikit berbeda untuk tujuan keamanan, seperti wpxx_options). Di bagian atas tabel, Anda akan melihat nilai untuk URL dan nama situs Anda. Jika ini sesuai dengan situs Anda saat ini, Anda dapat yakin bahwa Anda berada di tempat yang tepat.

Jika nama database Anda sudah benar dan Anda masih mendapatkan error untuk membuat pesan koneksi database maka Anda juga ingin memeriksa username dan password Anda. Untuk melakukan ini, Anda perlu membuat file PHP baru di direktori root situs WordPress Anda, dan masukan kode berikut. Anda bisa menamainya sesuai keinginan anda, seperti checkdb.php. Cukup ubah nilai db_user dan db_password dengan yang ada di file wp-config.php Anda.

<?php

$test = mysql_connect( ‘localhost’ , ‘db_user’ , ‘db_password’ );

if (! $test ) {

die ( ‘MySQL Error: ‘ . mysql_error());

}

echo ‘Database connection is working properly!’ ; mysql_close( $testConnection );

Kemudian browse ke file di situs WordPress Anda: https://yourdomain.com/checkdb.php. Jika Anda mendapatkan “MySQL Error: Access denied”, Anda tahu nama pengguna atau kata sandi Anda salah dan Anda perlu melanjutkan ke langkah berikutnya untuk mengatur ulang kredensial Anda.

Pesan yang ingin Anda lihat adalah pesan berikut – “Database connection is working properly.” Tapi tentu saja, jika saat itu Anda tidak berada di sini. Pastikan untuk menghapus file ini setelah selesai melakukan pengujian.

Jadi selanjutnya Anda perlu mereset username dan password Anda. Di cPanel, klik Database MySQL di bawah bagian Database.

MySQL Databases

Gulir ke bawah dan buat pengguna MySQL baru. Cobalah dan pilih username dan password yang unik sehingga tidak mudah ditebak. Alat generator kata kunci yang mereka berikan benar-benar bagus. Kemudian klik “Create User.” Anda bisa mengganti kata sandi di layar ini untuk pengguna database saat ini yang sudah ada.

MySQL Users

Kemudian scroll ke bawah dan tambah user baru Anda ke database. Layar berikutnya akan menanyakan privilege apa saja yang ingin Anda tambahkan. Pilih “All Privileges”.

Add User to Database

Kemudian ambil kredensial baru dan perbarui file wp-config.php Anda. Anda ingin memperbarui nilai DB_USER dan DB_PASSWORD. Anda juga bisa menjalankan test file lagi dari tadi. Ini kemudian harus menyelesaikan masalah kredensial Anda. Jika tidak, bisa jadi Anda masih memiliki nama host yang salah (DB_HOST). Beberapa host menggunakan nilai yang berbeda, lihat daftar beberapa nilai host DB yang umum. Biasanya ini hanya akan menjadi localhost. Tapi Anda selalu bisa menghubungi penyedia hosting Anda atau memeriksa dokumentasi mereka jika Anda tidak yakin. Beberapa mungkin juga menggunakan 127.0.0.1 bukan localhost.

2. Memperbaiki Database yang Rusak

Dalam beberapa kasus, pesan ini bisa saja muncul karena database Anda rusak. Ini bisa terjadi, meskipun tidak sering, karena ada banyak tabel di database yang ditambahkan dan dihapus setiap kali pemilik website mengaktifkan plugin dan tema baru.

Jika Anda mencoba login ke dashboard WordPress Anda dan mendapat pesan error establishing a database connection, ini berarti ada kerusakan pada database Anda. Selain itu, Anda juga akan mendapat pesan “One or more database tables are unavailable. The database may need to be repaired”. Perlu diingat bahwa Anda hanya akan mendapat pesan ini di back-end dan Anda akan mendapat pesan error establishing a database connection di front-end.

WordPress sebenarnya memiliki database repair mode yang bisa Anda gunakan. Anda hanya perlu menambahkan kode di bawah ini di bagian paling bawah file wp-config.php Anda.

define( ‘WP_ALLOW_REPAIR’ , true);

define wp allow repair

Kemudian jelajahi lokasi berikut di situs WordPress: https://yourdomain.com/wp-admin/maint/repair.php . Di situ, Anda akan mendapat opsi untuk repair the database atau repair and optimize the database. Opsi repair the database tentunya bekerja dengan lebih cepat karena mereka tidak melakukan proses optimasi. Jika Anda ingin menyelesaikan proses troubleshooting ini dengan cepat, Anda bisa memilih opsi yang pertama.

Setelah Anda memperbaiki database Anda, pastikan bahwa Anda menghapus kode yang sebelumnya Anda masukkan ke file wp-config.php Anda, jika tidak siapapun bisa memperbaikinya. Jika Anda menggunakan cPanel, Anda juga bisa memperbaikinya melalui MySQL Database.

Atau Anda bisa menjalankan perbaikan melalui phpMyAdmin. Anda hanya perlu login ke phpMyAdmin, klik database, dan pilih semua tabel. Kemudian dari pilihan dropdown, klik “Repair table”. Ini sebenarnya hanyalah menjalankan command Repair Table.

3. Memperbaiki File yang Rusak

Alasan ketiga yang mungkin menyebabkan munculnya pesan error establishing a database connection adalah kerusakan file. Ini bisa terjadi karena proses transfer file via FTP yang kurang sempurna, seorang hacker, ataupun masalah dengan host website Anda. Jangan lupa untuk membackup website Anda sebelum Anda memperbaiki masalah ini.

Yang akan Anda lakukan untuk memperbaiki masalah ini adalah menggantikan versi core dari WordPress di website Anda. Anda tidak akan melakukan perubahan pada plugin, tema, atau media Anda, hanya instalasi WordPress saja. Untuk melakukan ini, Anda perlu mendownload WordPress dari WordPress.org.

Unzip file tersebut dari komputer Anda. Di dalamnya, Anda hapus folder wp-content, termasuk di dalamnya file wp-config-sample.php.

Kemudian upload file yang tersisa via SFTP ke situs Anda, overwrite file Anda yang sudah ada di website tersebut. Ini akan menggantikan semua file yang bermasalah dan memastikan bahwa Anda memiliki file baru yang bersih dan tidak rusak. Anda juga sebaiknya clear browser cache setelah melakukan ini. Kemudian cek apakah situs WordPress untuk melihat apakah Anda masih memiliki masalah error ini.

4. Masalah dengan server database

Jika tidak ada satupun dari cara-cara diatas yang membantu menyelesaikan masalah Anda, maka Anda mungkin harus memeriksa dengan penyedia hosting Anda karena hal itu bisa menjadi masalah dengan server database Anda.

Misalnya, jika ada banyak koneksi bersamaan ke database Anda sekaligus, itu bisa menghasilkan error ini. Hal ini karena banyak host memiliki batasan pada server mereka tentang berapa banyak koneksi yang diperbolehkan sekaligus.

Menggunakan plugin caching dapat membantu meminimalkan interaksi database di situs Anda.

Masalah ini bisa banyak terjadi pada shared hosting karena orang lain secara teori dapat memengaruhi situs Anda. Hal ini karena shared hosting menggunakan semua resource yang sama di server.

5. Restore Backup Anda

Jika Anda ingin cara yang tercepat, Anda selalu dapat menggunakan backup jika diperlukan. Dalam beberapa kasus, ini mungkin cara yang lebih cepat untuk menyelesaikan masalah jika Anda tidak khawatir kehilangan data. Banyak host memiliki proses backup restore mereka sendiri. Ingat bahwa Anda mungkin perlu memulihkan database dan file Anda.

Simpulan

Seperti yang bisa Anda lihat, ada beberapa cara memperbaiki kesalahan dalam membangun koneksi database di WordPress. Yang paling umum adalah kredensial yang tidak valid dalam file wp-config.php. Langkah terbaik untuk memulai pemulihan website anda jika mengalami masalah ini adalah pastikan bahwa kredensial yang ada adalah kredensial yang benar.

Hal terakhir yang mungkin terjadi dan pasti tidak Anda inginkan untuk situs WordPress adalah downtime. Jadi mudah-mudahan salah satu langkah di atas membantu Anda membuat situs Anda kembali aktif dan berjalan.

WordCamp Jakarta 2017

Dewaweb bangga karena turut berpartisipasi dalam konferensi untuk komunitas WordPress di Jakarta. WordCamp Jakarta 2017 akan dihadiri kurang lebih 18 pembicara dari dalam maupun luar negeri. Mereka akan berbagi pengalaman, ilmu, serta cerita dari bermacam topik seperti blogging, pemrograman, dan pemasaran.WordCamp Jakarta memberikan peluang terbaik untuk menambah pengetahuan, teman baru, dan tidak jarang juga pekerjaan baru secara remote. Berikut jadwal sesi dapat dilihat di:

https://2017.jakarta.wordcamp .org/sessions/

WordCamp Jakarta akan diadakan pada 4 November 2017 di Hotel Ibis Style Sunter, Jakarta. Acara ini didukung banyak sponsors, salah satunya Dewaweb. Dewaweb akan hadir sebagai Gold Sponsor dengan membawa beberapa Ninja Support terbaik untuk mengadakan duel kontes mengetik cepat dengan berbagai hadiah menarik. Untuk yang kamu mau datang, dapatkan tambahan discount 20% dengan klik link ini. Sampai ketemu di WordCamp Jakarta 2017!