Drupal : Masalah dengan Query ke Database yang Timeout
Pernahkah anda menemukan eror seperti dibawah ini di situs anda?
[27-Jul-2007 06:38:19] PHP Warning: MySQL server has gone away query: INSERT INTO watchdog (uid, type, message, severity, link,
location, referer, hostname, timestamp) VALUES (0, 'php', 'MySQL server
has gone away\nquery: SELECT data, created, headers, expire FROM cache
WHERE cid = 'menu:0:en' in /home/hamburgi/public_html/orvwatch/includes/database.mysql.inc on line
121.', 2, '', 'http://www.orvwatch.com/pages/get_signs.html', '',
'64.34.145.201', 1185539899) in /home/hamburgi/public_html/orvwatch/includes/database.mysql.inc on line
121
Saya menemukan eror seperti diatas pada hari ini di salah satu situs saya. Erornya muncul ketika saya mencoba membuka salah satu menu di menu Site Building dan Site Configuration. Sepertinya ada masalah koneksi antara situs saya (menggunakan drupal) dan server MySQL. Seseorang di forum drupal memperkirakan eror yang terjadi itu disebabkan oleh dua hal, sehingga terjadilah eror seperti diatas itu:
1. Timeout (dalam kasus saya): Untuk yang seperti ini saya rasa ini adalah masalah umum pada penanganan koneksi pada database drupal. Eror seperti ini muncul jika jalannya fungsi lebih lama dibanding setingan timeout di database (berbeda-beda antar hostingan) dan tidak terjadi interaksi dengan database sedangkan fungsi auto-reconnect di database di matikan oleh tempat hostingan kita. Ini dapat terjadi si tiap module. Solusinya adalah mengkoneksikan ulang penanganan db drupal secara manual atau jika memungkinkan seting auto-reconnect di php.ini.
2. Query yang Terlalu Besar: Saya tidak yakin dengan yang ini. Namun mungkin saja ada query yang terlalu besar oleh beberapa module drupal yang melewati batas besaran query.
Dan saya tebak nomer satu adalah masalah yang persis terjadi dengan situs saya.
Ubah file php.ini, ungkap seseorang di Forum Drupal. namun bagaimana bisa merubahnya kalau kita tidak punya akses untuk merubah file php.ini. Tapi tidak untuk saya, administrator hosting tempat hosting saya memberikan file php.ini di tiap situs yang hosting di tempat dia. Cukup edit php.ini dan tambahkan baris berikut:
memory_limit = 16M
mysqli.reconnect = On
Dan berhasil. mysql.reconnect berarti situs drupal akan mencoba untuk koneksi ulang ke database MySQL meskipun waktu untuk melakukan query cukup lama. Seseorang di forum drupal memberikan solusi lainnya, edit file konfigurasi MySQL, file my.ini dan ubah nilai dari max_allowed_packet :
[mysqld]
max_allowed_packet=24M
Semoga berhasil
- roemasa's blog
- Add new comment
- 560 reads
Rubah php.ini di hosting
Waduh boleh juga tuh tempat hostingnya, setahu saya php.ini dieksekusi pada saat server dihidupkan, begitu juga my.ini. Jadi bagaimana mungkin php.ini atau my.ini bisa diatur per domain hosting.
Apa ane memang yang gatek kali...!!,
Re: Rubah php.ini di hosting
Iya pak secara default kita yang menyewa hosting memang ga akan bisa ngotak-ngatik file php.ini. Kebetulan web saya yang www.erakomputer.com itu hosting di www.dijaminmurah,com dan sepengalaman saya kelihatannya pihak dijaminmurah memberikan fasilitas default bagi kliennya itu benar-benar standar. Kalau ga salah waktu itu memory_limit nya cuma dikasih 8MB. Akhirnya karena situs saya sering eror gara2 memori limit yg kecil maka saya bbrp kali komplain ke mereka. Dan dengan 'terpaksa' akhirnya mereka membuat khusus file.ini untuk account hosting saya. Sejauh ini sih file php.ini yang ada di lokal hosting itu lumayan berfungsi. Mungkin bisa dicoba juga taruh hosting disitu :)
btw... bisa minta tolong
btw... bisa minta tolong dengan file php.ini n my.ini??? soalnya saya bingung gmn cara makenya.... kebetulan saya juga hosting dijaminmurah.com juga... thx yah....
Re: btw... bisa minta tolong
Dulu saya memang hosting di dijaminmurah.com, tapi sejak 4 bulan lalu sudah pindah. Mengenai file php.ini dan my.ini bisa ditanyakan langsung ke CS-nya. Dijaminmurah.com kan sudah berganti manajemen dan setahu saya di manajemen baru itu lebih baik pelayanannya. Cara menggunakannya cukup dengan mengedit file php.ini lalu tambahkan baris mysqli.reconnect = On. Dicoba tanyakan dulu aja dengan pihak hostingnya. :)
Support MySQLi
Kalau hosting di RHI sudah full support MySQLi :)
Regards,
Sutan
http://www.idresellerhosting.com