In Docker non funziona l'healthcheck di MariaDB

From RVM Wiki
Revision as of 12:45, 9 December 2025 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Se l'healthcheck non funziona e se si prova da shell del container, e à errore:

healthcheck.sh --connect --innodb_initialized

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Il problema è che il database è stato creato con una vecchia versione di mysql o mariadb, e non ha la configurazione corretta per eseguire il check.

In particolare, manca l'utente mariadb healthcheck ed il file di configurazione ..my-healthcheck.cnf da cui lo script legge i datio di autenticazione.

  • Creare gli user:
mariadb -u root -p$MARIADB_ROOT_PASSWORD

CREATE USER healthcheck@'127.0.0.1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@'::1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@localhost IDENTIFIED BY 'healthCheckConnectPassEscaped';

QUIT
  • Creare il config file:
cat > /var/lib/mysql/.my-healthcheck.cnf <<EOFile
[mariadb-client]
port=3306
socket=/run/mysqld/mysqld.sock
user=healthcheck
password=healthCheckConnectPassEscaped
EOFile
  • Ora funziona:
healthcheck.sh --connect --innodb_initialized

Riferimenti