Nexcloud-DB – besonders nach einem Update/Upgrade – es gibt diese Fehlermeldung schon lange, die Lösung ist von 2022
Bei der Fehlermeldung im log (ich habe über Portainer ins log geschaut):
2024-03-17 10:00:43 3756 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
2024-03-17 10:00:43 3756 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
(das war seit dem Update gestern die 3756 te Meldung)
… kann man eine phpmyadmin-Oberfläche aktivieren.
# -----------------------------------------------------------------------------
phpmyadmin_next:
image: phpmyadmin/phpmyadmin
restart: unless-stopped
ports:
- 8093:80
networks:
- traefik
links:
- nextcloud_db:db
Fett markierte Worte: Bei Ports den eigenen geeigneten Port wählen, bei networks das eigene passende Network wählen und bei Links den richtigen Namen des eigenen nextcloud-DB-Containers wählen.
phpmyadmin-Container starten
docker-compose up -d phpmyadmin_next
Die phpmyadmin- Oberfläche starten (man findet den Link bequem über Portainer).
Anmeldung mit username root und dem root-Kennwort.
Schon sieht man die table und kann über sql die folgenden Befehle absetzen:
ALTER TABLE mysql.column_stats MODIFY histogram longblob;
ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');
Keine Meldungen mehr – Problem gelöst.
Eine elegantere Art und Weise für den phpmyadmin-Code in der docker-compose.yml ist:
# ------------------------------------------------------------
phpmyadmin_next:
# ----------------------------------------------------
# PHP Admin for SQL Databases
# ----------------------------------------------------
image: phpmyadmin
hostname: phpmyadmin_next
container_name: phpmyadmin_next
restart: unless-stopped
ports:
- 8093:80
networks:
- traefik
#profiles:
# - php
environment:
- PMA_ARBITRARY=1
- PMA_HOST=nextcloud_db
- PMA_PORT=3306
- PMA_USER=root
- PMA_PASSWORD=${NEXTCLOUD_MARIADB_ROOT_PASSWORD}
healthcheck:
test: [CMD, curl, -f, http://localhost:80]