mysql-crashed

MySQL Stopped Unexpectedly

Pernah mengalami hal ini ? MySQL atau MariaDB memiliki beberapa pola yang harus kita ketahui terkait crash moment :

MySQL service on local computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.

Atau mungkin yang seperti ini?

Run MySQL XAMPP via XAMPP Shell (MySQL Shutdown Solution) - Sutriman -  Sutriman

Anda tidak sendirian! Banyak beberapa kasus yang terjadi dalam penggunaan database MySQL/MariaDb yang harus anda tangani dengan cara yang cerdas, cermat dan siap siaga! Namun, sebelum itu ketahui dulu apa penyebabnya?

#Case 01 : Windows Autoupdate

Masih ingat tentang kronologi file caching di windows server? Ketika fitur autoupdate terjadi. Ada keadaan dimana windows melakukan restart untuk apply critical updates tanpa konfirmasi kepada user. Dan hal ini membahayakan database yang sedang dipergunakan secara live!

Antisipasi hal ini dengan melakukan autoupdate -> manual. Jangan gunakan automatic mode. Konfigurasi lakukan secara bertahap demi kestabilan database.

#Case 02 : Logib Files

Ada pula keadaan dimana cache file tidak final. Apa saja file Logib itu?

Lacak 3 file yang berada di lokasi folder mysql\data :

  • ib_logfile0
  • ib_logfile1
  • ibdata1

Ketiga file ini wajib dihapus dulu karena apabila file ini terakhir writing process invalid, maka mysql running akan kembali crashed!

Setelah proses penghapusan dilakukan, sekarang jalankan kembali MySQL Services atau Restart windowsnya.

#Case 03 : my.ini Configuration

Hal yang terjadi dimana configuration file tidak bisa dibaca oleh MySQL / MariaDB juga bisa menjadi penyebab crashed!

Atasi hal ini dengan menimpa my.ini (default). Lalu setting kembali port mana yang ingin dibuka. Setelah itu MySQL dapat dijalankan kembali.

Terkadang kita bisa juga menggunakan checking mechanism dari MySQL itu sendiri, caranya tentu saja via command prompt lalu ketik :

mysqld –defaults-file=”C:\Program Files\MySQL\MySQL Server 5.0\my.ini” –standalone –console

Dengan ini maka my.ini configuration file akan dicheck mana settings config yang hilang / kurang untuk dapat menormalkan kembali saat MySQL dijalankan.

#Case 04 : Port Conflict

Port conflict jarang terjadi, namun ada apps lain yang menggunakan port serupa dengan port bawaan MySQL / MariaDB. Misalkan sebelumnya 3306, maka hal ini pasti akan bertubrukan!

Kita bisa memeriksa ketersediaan port di command prompt dengan mengetikkan command :

netstat -aon

Setelah itu akan muncul sederet angka ip-address:<Port-Terpakai>.

How to Check Open Ports Using CMD in Windows? - GeeksforGeeks

Jika hal ini sudah muncul, maka gunakanlah nomor port lain yang tidak tersedia dalam daftar tersebut. Karena kalau masih menggunakan nomor yg sama, maka port itu akan conflict lagi.

Buka file my.ini dalam konfigurasi MySQL, lalu gunakan port terbaru:

Save dan jalankan MySQL seperti sediakala!

#Case 05 : Network Service Permission

Untuk pengguna Windows OS, baik Windows 10, 11 hingga Win.Server. Perlu menggunakan permission yang sesuai. Jika tidak maka file writing akan terblock. Untuk itu lakukan:

  • Buka mysql\data folder
  • Lalu klik kanan Properties | Security | Advanced | Change Permissions | Add
  • Tambahkan nama : NETWORK SERVICES
  • Klik Check Names | OK
  • Aktifkan Full Control (Allow).

Ok, lalu jalankan MySQL seperti biasa.

#Case 06 : Bonus Case -Storage Engine-

File Corrupt saat menggunakan MySQL / MariaDB dengan menggunakan InnoDB / MyISAM. Apakah keterkaitannya? Saat Windows dihadapkan dengan dua jenis storage engine ini. Maka kita harus memperbesar ukuran caching nya. Sejatinya hal ini dilakukan agar proses tidak putus tengah jalan yang menyebabkan crashed berkepanjangan.

Untuk DB yang menggunakan MyISAM wajib execution code ini di MySQL Query :

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables
WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','mysql')) AA ) A,
(SELECT 2 PowerOf1024) B;

Adapun untuk DB yang menggunakan InnoDB maka gunakanlah Query berikut ini :

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 2 PowerOf1024) B;

Nah sekian! Jika masih ada kendala lainnya, segera tangani dengan menggunakan backup berkala untuk antisipasi lainnya dan hubungi kami langsung!