In Docker non funziona l'healthcheck di MariaDB: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 14: Line 14:
CREATE USER healthcheck@'127.0.0.1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@'127.0.0.1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@'::1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@'::1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@'127.0.0.1' IDENTIFIED BY 'healthCheckConnectPassEscaped';
CREATE USER healthcheck@localhost IDENTIFIED BY 'healthCheckConnectPassEscaped';


QUIT
QUIT

Revision as of 12:32, 3 November 2025

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