In Docker non funziona l'healthcheck di MariaDB

From RVM Wiki
Revision as of 09:53, 3 November 2025 by Gabriele.vivinetto (talk | contribs) (Created page with "Se l'healthcheck non funziona e se si prova da shell del container, e à errore:<pre> 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) </pre>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, ma...")
(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@'127.0.0.1' IDENTIFIED BY 'healthCheckConnectPassEscaped';

QUIT
  • Creare il config file:
cat > /var/lib/mysq/.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