Per defecte, els registres com el general de MySQL o MariaDB solen estar desactivats i no és recomanable utilitzar-los excepte per a la depuració. Poden emmagatzemar molta informació segons l'ús de la base de dades.
Per exemple, podem utilitzar MySQLTuner perquè analitzi automàticament i optimitzar més fàcilment MySQL.
El registre d'errors està activat per defecte, ja que no requereix tants recursos i és important tenir el log per poder comprovar si el servei ha notificat algun error.
Hi ha diversos tipus de logs que podem activar:
| Tipus | Informació del log |
|---|---|
| Registre d'errors | Problemes trobats en iniciar, executar o aturar mysqld |
| Registre general de consultes | Establiment de connexions amb els clients i sentències rebudes dels clients. |
| Registre binari | Sentències que canvien les dades (també s'utilitzen per a la replicació) |
| Registre de retransmissió | Canvis de dades rebuts d'un servidor d'origen de replicació |
| Registre de consultes lentes | Consultes que van trigar més de 'long_query_time' segons a executar-se |
| Registre DDL (registre de metadades) | Operacions de metadades realitzades per sentències DDL |
Activació fins al reinici del servei
Per activar temporalment el log general fins al reinici del servei, hem de seguir aquests passos (hi ha opcions addicionals).
Inicieu sessió a MySQL:
# sudo mysql -u root
Un cop dins, podem revisar les variables de log mitjançant (opcional):
show variables like '%log%';
Podem revisar la ubicació del registre d'errors mitjançant (opcional):
show variables like 'log_error';
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| log_error | /var/log/mysql/error.log |
+---------------+--------------------------+
1 row in set (0.001 sec)
Abans d'activar el log general o un altre tipus de log, ens hem d'assegurar que està configurat en un fitxer i no en una taula:
show variables like 'log_out%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.002 sec)
Per modificar aquest valor a un fitxer, s'executa l'ordre següent:
SET GLOBAL log_output = 'FILE';
Indiqueu la ubicació del fitxer:
SET GLOBAL general_log_file='/var/log/mysql/general.log';
Per consultar l'estat del log:
show global variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log | OFF |
+---------------+-------+
1 row in set (0.002 sec)
Finalment, per activar el log, l'hem de posar en estat "ON", en aquest cas el general:
SET GLOBAL general_log = 'ON';
Per desactivar el log, simplement desactiveu-lo (opcional):
SET GLOBAL general_log = 'OFF';
Activació permanent
Un reinici del servei suposaria la desactivació de la configuració realitzada dins de la base de dades amb el mètode anterior.
Per fer-la permanent, l'haurem d'establir al fitxer de configuració del servei.
Únicament haurem d'afegir el següent al fitxer my.cnf de la ruta /etc/mysql/:
general-log=1
general-log-file=/var/log/mysql/general.log
Feu una recàrrega perquè els canvis es facin efectius:
# systemctl reload mysql.service
Nota important:
Recordeu que és important fer una rotació dels logs per no omplir l'espai de disc. En el cas de HestiaCP, entre d'altres, aquesta acció ja està configurada, també per a aquest log en particular. Podeu revisar-ho a la ruta /etc/logrotate.d/mysql-server.
Si utilitzeu una taula per als registres, programeu un truncament de la taula.