In Docker non funziona l'healthcheck di MariaDB
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