Log kesalahan berisi informasi tentang startup mysqld dan waktu shutdown, catatan kemajuan yang terjadi saat startup dan shutdown, dan kesalahan kritis yang terjadi saat server sedang berjalan. Jika mysqld memperhatikan sebuah tabel yang perlu diperiksa atau diperbaiki secara otomatis, ia menulis sebuah pesan ke log kesalahan.

Pada beberapa sistem operasi, log kesalahan berisi tumpukan jejak jika mysqld keluar secara tidak normal. Jejak bisa digunakan untuk menentukan dari mana mysqld keluar. Lihat Bagian 28.5, “Debugging and Porting MySQL”.

Interpretasi pilihan error logging agak berbeda untuk sistem Windows dan Unix, jadi pastikan untuk menggunakan informasi yang sesuai dengan sistem Anda.

Mysqld_safe dapat menulis pesan ke log kesalahan jika digunakan untuk memulai mysqld. Sebagai contoh, ketika mysqld_safe pemberitahuan abnormal mysqld keluar, ia me-restart mysqld dan menulis pesan ulang mysqld ke log kesalahan.

Dalam pembahasan berikut, “console” berarti stderr, standard error output. Ini adalah jendela terminal atau konsol Anda kecuali jika output kesalahan standar telah dialihkan.

Error Logging pada Windows

Pada opsi Windows, the –log-error, –pid-file, dan –console mempengaruhi error logging:

Tanpa –log-error, mysqld menulis pesan kesalahan ke file log default.

Dengan –log-error [= file_name], mysqld menulis pesan kesalahan ke file log kesalahan. Jika tidak ada file yang bernama, mysqld menulis ke file log default. Jika sebuah file diberi nama, mysqld menuliskannya, membuatnya dalam direktori data kecuali nama path absolut diberikan untuk menentukan direktori yang berbeda.

File log default adalah host_name.err di direktori data, kecuali opsi –pid-file ditentukan. Dalam hal ini, nama default adalah nama dasar file PID dengan akhiran .err di direktori data. Default ini digunakan jika –log-error tidak diberikan, atau diberikan tanpa memberi nama file log.

Dengan –console, mysqld menulis pesan kesalahan ke konsol. –log-error, jika diberikan, diabaikan dan tidak berpengaruh. Jika kedua pilihan itu ada, urutannya tidak penting: –console diutamakan dan pesan kesalahan masuk ke konsol. (Di MySQL 5.5 dan 5.6, prioritasnya dibalik: –log-error cause –console to be ignore.)

Selain itu, di Windows, server secara default menulis pesan kejadian dan pesan kesalahan ke Windows Event Log dalam log aplikasi.

Entri yang ditandai sebagai Error, Warning, dan Note ditulis ke Log Peristiwa, namun bukan pesan informasi seperti pernyataan informasi dari masing-masing mesin penyimpanan.

Entri log ini memiliki sumber MySQL.

Informasi yang ditulis ke Windows Event Log dapat dikontrol dengan menggunakan variabel sistem log_syslog, seperti yang dijelaskan kemudian.

Jika server menulis pesan kesalahan ke konsol, server akan menetapkan variabel sistem log_error ke stderr. Jika tidak, log_error menunjukkan nama file log kesalahan. Pada Windows, –console menimpa penggunaan file log kesalahan dan mengirimkan pesan kesalahan ke konsol, jadi server menyetel log_error ke stderr. Hal ini terjadi bahkan jika –log-error juga diberikan.

Error Logging pada Unix dan Unix-Like Systems

Pada sistem Unix dan Unix, mysqld menulis pesan error log sebagai berikut:

Tanpa –log-error, mysqld menulis pesan kesalahan ke konsol.

Dengan –log-error [= file_name], mysqld menulis pesan kesalahan ke file log kesalahan. Jika tidak ada file yang bernama, mysqld menulis ke file log default. Jika sebuah file diberi nama, mysqld menuliskannya, membuatnya dalam direktori data kecuali nama path absolut diberikan untuk menentukan direktori yang berbeda.

File log default adalah host_name.err di direktori data. Default ini digunakan jika –log-error diberikan tanpa memberi nama file log.

Jika server menulis pesan kesalahan ke konsol, server akan menetapkan variabel sistem log_error ke stderr. Jika tidak, log_error menunjukkan nama file log kesalahan.

Jika Anda menentukan –log-error pada file pilihan di bagian [mysqld], [server], atau [mysqld_safe], mysqld_safe menemukan dan menggunakan opsi tersebut.

Menggunakan Syslog untuk Error Log

Hal ini dimungkinkan untuk memiliki mysqld menulis log kesalahan ke syslog pada sistem Unix dan Unix-like, dan Windows Event Log on Windows. Untuk melakukannya, gunakan variabel sistem ini:

Log_syslog: Aktifkan variabel ini untuk mengirim log kesalahan ke syslog. Dalam kasus ini, variabel sistem berikut juga dapat digunakan untuk kontrol yang lebih baik.

Log_syslog_facility: Fasilitas default untuk pesan syslog adalah daemon. Tetapkan variabel ini untuk menentukan fasilitas yang berbeda.

Log_syslog_include_pid: Apakah menyertakan ID proses server di setiap baris output syslog.

Log_syslog_tag: Variabel ini mendefinisikan tag untuk ditambahkan ke server identifier (mysqld) dalam pesan syslog. Jika didefinisikan, tag ditambahkan ke pengenal dengan tanda hubung utama.

Pada sistem Unix dan Unix, kontrol output ke syslog juga tersedia dengan menggunakan mysqld_safe, yang dapat menangkap kesalahan server dan menyebarkannya ke syslog.