Cara Mengatasi MySQL Server Has Gone Away di WordPress

Apa itu Error MySQL Server Has Gone Away?
MySQL Server Has Gone Away adalah error yang menyebabkan website tidak bisa diakses. Ketika error ini terjadi, browser Anda akan menampilkan salah satu dari error log berikut:

General error: 2006 MySQL server has gone away
Error Code: 2013. Lost connection to MySQL server during query
Warning: Error while sending QUERY packet
PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Nah, error MySQL Server Has Gone Away bisa disebabkan oleh salah satu dari keempat hal berikut:

  • Tabel bermasalah di dalam database — Database Anda corrupted dan Anda perlu menggunakan backup sebelumnya atau memperbaiki database tersebut.
  • Timeout PHP terlalu singkat — Script PHP yang membutuhkan sesuatu dari database bisa menjadi penyebab jika durasi maksimalnya terlalu pendek.
  • Fragmen data (packets) gagal terkirim — Proses memuat halaman website meliputi transfer data dari database. Ketika ada fragmen data yang gagal terkirim, error bisa terjadi.
  • Ukuran data terlalu besar — Ini berhubungan dengan timeout PHP tadi. Jika ukuran data yang digunakan halaman website memang besar, timeout PHP perlu diperpanjang agar transfer data tidak gagal.

Kabar baiknya, keempat pemicu di atas dapat ditanggulangi dengan mudah. Mari simak cara-caranya pada bagian selanjutnya!

Mengatasi MySQL Server Has Gone Away dengan Restore Backup Database
Untuk mengatasi database yang bermasalah, cara mudahnya adalah restore backup-nya. Namun, ada yang perlu Anda ketahui sebelum mempraktikkan solusi ini. Cara restore backup database tergantung dengan panel kontrol yang disediakan provider hosting Anda. Nah, di artikel ini kami menggunakan cPanel Niagahoster sebagai contoh.

1. Login ke cPanel
Pertama, akses dasbor cPanel Anda. Untuk melakukannya, Anda bisa menambahkan /cpanel di belakang URL website Anda. Misalnya websiteku.com/cpanel.

Jika sudah, login dengan username dan password yang diberikan penyedia hosting saat Anda membeli hosting.

Apabila menggunakan layanan Niagahoster, Anda bisa login ke cPanel secara instan. Caranya:

1. Login ke Member Area tridaya.cloud.com

2. Klik Kelola Hosting

Tombol kelola hosting di Member Area

3. Di tab cPanel, klik All Features

Menu cPanel di Member Area

2. Akses Menu Database Backups
Setelah login ke cPanel, klik menu Database Backups. Anda bisa mencarinya menggunakan search bar cPanel agar lebih mudah.

Menu database backups cPanel

3. Restore Backup Database
Menu tersebut akan menampilkan daftar backup database Anda. Nah, di sebelah kanan masing-masing backup Anda akan menemukan tombol Restore. Klik tombol tersebut untuk restore database.

Tombol restore backup database cPanel

Cara ini dijamin ampuh untuk menghilangkan error database. Akan tetapi, perlu diingat bahwa cara ini akan menghapus pembaruan terakhir di situs Anda dan menggantinya dengan backup terakhir yang dilakukan. Untuk itu, penting bagi Anda untuk melakukan backup database secara rutin.

Mengatasi MySQL Server Has Gone Away dengan Mengedit File wp-db.php
Seperti yang telah disebutkan, ukuran data yang besar dan timeout PHP yang terlalu singkat dapat menyebabkan error. Karena itu, Anda harus menambah durasinya. Ini bisa Anda lakukan dengan mengedit file wp-db.php yang ada di root folder website. Berikut ini adalah langkah-langkahnya:

1. Akses File Manager cPanel
Akses cPanel Anda dan masuk ke File Manager.

MySQL server has gone away - halaman utama cPanel

2. Temukan File wp-db.php
Setelah masuk ke File Manager, akses folder public_html > wp-includes. Kemudian, temukan file wp-db.php.

MySQL server has gone away - file wp-db di folder wp-includes

3. Tambah Timeout PHP
Sekarang Anda harus menambah timeout PHP dengan menambahkan kode ke file wp-db.php. Untuk melakukannya, Anda bisa menggunakan text editor tersendiri atau yang ada di cPanel. Di panduan ini kami menggunakan text editor cPanel sebagai contoh.

Klik kanan di file wp-db.php dan klik Edit untuk membuka file tersebut. Jika text editor sudah muncul, cari baris kode $this->ready = true. Perhatikan tangkap layar di bawah ini agar lebih jelas.

MySQL server has gone away - mengedit file wp-db di text editor cPanel

Supaya lebih mudah, Anda juga bisa mengetikkan kode tersebut di search bar text editor cPanel.

Tambahkan $this->query(“set session wait_timeout=300”); di bawah baris tadi, lalu klik Save Changes.

Kode tersebut memastikan bahwa timeout PHP Anda 300 detik. Dengan durasi selama itu, error MySQL Server Has Gone Away dapat dicegah.

Mengatasi MySQL Server Has Gone Away dengan Memperbaiki Database Website
Dengan bertambahnya volume data website, terkadang databasenya bisa bermasalah. Error MySQL Server Has Gone Away dapat muncul jika hal tersebut terjadi.

Untungnya, WordPress menyediakan fitur bawaan yang memungkinkan Anda untuk memperbaiki masalah di atas. Namun, Anda harus menyalakan pengaturannya terlebih dahulu di dalam file wp-config.php. Bagaimana caranya? Ikuti langkah-langkah berikut.

1. Temukan File wp-config.php
Buka File Manager dan akses folder public_html. Folder wp-config.php bisa Anda temukan di sini.

MySQL server has gone away - file wp-config di folder public-html

2. Perbaiki Database
Seperti saat berurusan dengan file wp-db.php tadi, klik kanan pada file wp-config.php dan klik Edit.

Di text editor, tambahkan define(‘WP_ALLOW_REPAIR’, true); di bagian paling bawah file wp-config.php. Ini akan mengaktifkan fitur perbaikan database.

Selanjutnya, akses https://yourwebsite.com/wp-admin/maint/repair.php di browser Anda. Akan muncul dua opsi, yaitu:

  • Repair database
  • Repair database and optimize

Pilihlah opsi pertama karena Anda hanya perlu memperbaiki database. Jika sudah, jangan lupa untuk menghapus kode untuk mengaktifkan perbaikan database yang Anda tambahkan di file wp-config.php. Kalau tidak, orang lain bisa mengakses perbaikan database website Anda melalui URL tadi.