Iznenadne mysql greške

Nakon prošlotjedne redovite dogradnje paketa na serverima s Debian wheezy OS-om, OSSEC HIDS je počeo zatrpavati poštanske pretince sistemaca s porukama:

Received From: dora->/var/log/syslog
Rule: 1002 fired (level 2) -> "Unknown problem somewhere in the system."

Portion of the log(s):
Jan 31 14:38:11 dora mysqld: 170131 14:38:11 [Warning] Client failed to provide its character set. 'latin1' will be used as client character set.

Istraživanjem uz pomoć Googlea saznao sam da se radi o dosta starom problemu (pa je nejasno kako nam se tek sad pojavio). Uzrok je u starijim klijentima, prilagođenima mysql 4 verziji. Idealno bi bilo da korisnici ažuriraju svoje programe s kojima pristupaju bazama podataka, ali to je dugotrajna procedura.

Ovo je još u svibnju 2014. prijavljeno kao bug autorima mysqla: https://bugs.mysql.com/bug.php?id=72543

Kako se na gornjem linku može vidjeti, ove greške se neće javljati u verzijima nakon 5.7.6. Tako da oni koji su svoje poslužitelje nadogradili na Debian Jessie verziju nemaju ovaj problem.

A problem je u tome što svakih 15 minuta dođe poruka s ovom pogreškom. Prilično frustrirajuće osobito za one koji održavaju više poslužitelja.

Kako novije verzije mysqla za wheezy nema, krenuo sam istraživati kako spriječiti slanje ovih poruka. Konfiguracija za mysql nalazi se u /etc/mysql direktoriju. Osim datoteke my.cnf tu je i direktorij conf.d, u kojem nalazimo samo jednu datoteku, i to baš onu koja je odgovorna za logiranje mysqld_safe_syslog.cnf.

U njoj nalazimo samo ovo:

[mysqld_safe]
syslog

A to definira da se greške myslq-a ispisuju u syslogu, kojeg OSSEC pregledava i šalje upozorenja.

Nakon malo istraživanja našao sam rješenje. Prvo treba obrisati datoteku  /etc/mysql/conf.d/mysqld_safe_syslog.cnf (ili zakomentirati njen sadržaj).
A nakon toga u datoteci  /etc/mysql/my.cnf dodati liniju

log_error=/var/log/mysql/mysql_error.log

i to na dva mjesta, ispod sadržaja navedenih iza:

[mysqld_safe]

i

[mysqld]

Nakon toga slijedi restartanje mysql-a (/etc/init.d/mysql restart) i sve greške se upisuju u datoteci /var/log/mysql/mysql_error.log.

Naravno, ovo je samo privremeno rješenje do nadogradnje Debiana.

 

Kuharice: 
Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)