fix: restore MariaDB definers after backup recovery

Recreate and reset the accounts required by restored RomM views, triggers, and loopback database access before MariaDB accepts network connections.

Release the restore fix as 5.1.0:10.
This commit is contained in:
2026-08-13 11:11:36 -05:00
parent d0049cf1b4
commit d6bcfefa5f
3 changed files with 44 additions and 9 deletions
+6 -3
View File
@@ -1,10 +1,13 @@
FROM mariadb:11.4.5@sha256:49117dcc565cf51aa57ac5fca59ab31213402ff0eae6ffc13c46a37b938f7e4b FROM mariadb:11.4.5@sha256:49117dcc565cf51aa57ac5fca59ab31213402ff0eae6ffc13c46a37b938f7e4b
# start-sdk 2.0.9's logical backup helper invokes the legacy MySQL command
# names. MariaDB 11.4 ships only mariadb-* names, so expose compatibility
# aliases until these commands are configurable by the SDK.
RUN ln -s /usr/bin/mariadb-admin /usr/local/bin/mysqladmin \ RUN ln -s /usr/bin/mariadb-admin /usr/local/bin/mysqladmin \
&& ln -s /usr/bin/mariadb-dump /usr/local/bin/mysqldump \ && ln -s /usr/bin/mariadb-dump /usr/local/bin/mysqldump \
&& ln -s /usr/bin/mariadb /usr/local/bin/mysql \ && ln -s /usr/bin/mariadb /usr/local/bin/mysql \
&& ln -s /usr/bin/mariadb-install-db /usr/local/bin/mysql_install_db \ && ln -s /usr/bin/mariadb-install-db /usr/local/bin/mysql_install_db \
&& ln -s /usr/sbin/mariadbd /usr/local/bin/mysqld && ln -s /usr/sbin/mariadbd /usr/local/bin/mysqld
COPY startos-entrypoint.sh /usr/local/bin/startos-entrypoint.sh
ENTRYPOINT ["/usr/local/bin/startos-entrypoint.sh"]
CMD ["mariadbd"]
+32
View File
@@ -0,0 +1,32 @@
#!/bin/sh
set -eu
/usr/local/bin/docker-entrypoint.sh "$@" --skip-networking &
server_pid=$!
trap 'kill -TERM "$server_pid" 2>/dev/null || true; wait "$server_pid"' TERM INT
root_password=''
until {
if mariadb --protocol=socket --user=root --password="$MARIADB_ROOT_PASSWORD" --execute 'SELECT 1' >/dev/null 2>&1; then
root_password="$MARIADB_ROOT_PASSWORD"
elif mariadb --protocol=socket --user=root --password="$MARIADB_PASSWORD" --execute 'SELECT 1' >/dev/null 2>&1; then
root_password="$MARIADB_PASSWORD"
else
false
fi
}; do
if ! kill -0 "$server_pid" 2>/dev/null; then
wait "$server_pid"
exit $?
fi
sleep 1
done
mariadb --protocol=socket --user=root --password="$root_password" --execute "CREATE USER IF NOT EXISTS 'romm'@'%' IDENTIFIED BY '$MARIADB_PASSWORD'; ALTER USER 'romm'@'%' IDENTIFIED BY '$MARIADB_PASSWORD'; GRANT ALL PRIVILEGES ON romm.* TO 'romm'@'%'; CREATE USER IF NOT EXISTS 'romm'@'127.0.0.1' IDENTIFIED BY '$MARIADB_PASSWORD'; ALTER USER 'romm'@'127.0.0.1' IDENTIFIED BY '$MARIADB_PASSWORD'; GRANT ALL PRIVILEGES ON romm.* TO 'romm'@'127.0.0.1';"
kill -TERM "$server_pid"
wait "$server_pid"
exec /usr/local/bin/docker-entrypoint.sh "$@"
+6 -6
View File
@@ -1,18 +1,18 @@
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
export const current = VersionInfo.of({ export const current = VersionInfo.of({
version: '5.1.0:1', version: '5.1.0:10',
releaseNotes: { releaseNotes: {
en_US: en_US:
'Initial StartOS release of RomM 5.1.0. Adds the scan settings UI and per-field artwork priorities, improves library scanning, and includes security hardening and numerous fixes. Full release notes: https://github.com/rommapp/romm/releases/tag/5.1.0', 'Restores the MariaDB account required by RomM view and trigger definers after backup recovery. Full release notes: https://github.com/rommapp/romm/releases/tag/5.1.0',
es_ES: es_ES:
'Versión inicial de RomM 5.1.0 para StartOS. Añade la interfaz de configuración de escaneo y prioridades de ilustraciones por campo, mejora el escaneo de la biblioteca e incluye refuerzos de seguridad y numerosas correcciones. Notas completas: https://github.com/rommapp/romm/releases/tag/5.1.0', 'Restaura la cuenta de MariaDB requerida por los definidores de vistas y disparadores de RomM después de recuperar una copia de seguridad. Notas completas: https://github.com/rommapp/romm/releases/tag/5.1.0',
de_DE: de_DE:
'Erste StartOS-Veröffentlichung von RomM 5.1.0. Fügt die Oberfläche für Scan-Einstellungen und feldbezogene Prioritäten für Grafiken hinzu, verbessert Bibliotheksscans und enthält Sicherheitshärtungen sowie zahlreiche Korrekturen. Vollständige Versionshinweise: https://github.com/rommapp/romm/releases/tag/5.1.0', 'Stellt nach einer Sicherungswiederherstellung das MariaDB-Konto wieder her, das von den Definern der RomM-Views und Trigger benötigt wird. Vollständige Versionshinweise: https://github.com/rommapp/romm/releases/tag/5.1.0',
pl_PL: pl_PL:
'Pierwsze wydanie RomM 5.1.0 dla StartOS. Dodaje interfejs ustawień skanowania i priorytety grafik dla poszczególnych pól, usprawnia skanowanie biblioteki oraz zawiera wzmocnienia zabezpieczeń i liczne poprawki. Pełne informacje o wydaniu: https://github.com/rommapp/romm/releases/tag/5.1.0', 'Przywraca po odzyskaniu kopii zapasowej konto MariaDB wymagane przez definicje widoków i wyzwalaczy RomM. Pełne informacje o wydaniu: https://github.com/rommapp/romm/releases/tag/5.1.0',
fr_FR: fr_FR:
'Première version de RomM 5.1.0 pour StartOS. Ajoute linterface des paramètres danalyse et les priorités dillustration par champ, améliore lanalyse de la ludothèque et inclut un renforcement de la sécurité ainsi que de nombreux correctifs. Notes complètes : https://github.com/rommapp/romm/releases/tag/5.1.0', 'Restaure après récupération dune sauvegarde le compte MariaDB requis par les définisseurs des vues et déclencheurs RomM. Notes complètes : https://github.com/rommapp/romm/releases/tag/5.1.0',
}, },
migrations: { migrations: {
up: async () => {}, up: async () => {},