mariadb: Check and fix datadir owner issues during upgrade

If you are migrating to MariaDB package, you might have old datadir
stored somewhere using different setup with different users. If you
trust us enough to enable autoupgrade, you probably trust us enough to
chown your datadir as well. This can prevent some potential issues.

Signed-off-by: Michal Hrusecky <michal.hrusecky@turris.com>
(cherry picked from commit b41525cef4)
This commit is contained in:
Michal Hrusecky 2022-01-13 15:04:57 +01:00 committed by Josef Schlehofer
parent e86528676b
commit f4d8f9c98f
No known key found for this signature in database
GPG key ID: B950216FE4329F4C
2 changed files with 7 additions and 1 deletions

View file

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=mariadb PKG_NAME:=mariadb
PKG_VERSION:=10.4.22 PKG_VERSION:=10.4.22
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL := https://archive.mariadb.org/$(PKG_NAME)-$(PKG_VERSION)/source PKG_SOURCE_URL := https://archive.mariadb.org/$(PKG_NAME)-$(PKG_VERSION)/source

View file

@ -152,6 +152,12 @@ start_service() {
# Migration from old versions # Migration from old versions
# shellcheck disable=SC2154 # shellcheck disable=SC2154
if [ "$(cat "$datadir"/.version 2> /dev/null)" \!= "$version" ] && [ "$autoupgrade" -gt 0 ]; then if [ "$(cat "$datadir"/.version 2> /dev/null)" \!= "$version" ] && [ "$autoupgrade" -gt 0 ]; then
# Check for correct owner
local owner="$(stat --format %U:%G "$datadir" 2> /dev/null)"
if [ -n "$owner" ] && [ "$owner" != "$my_user:$my_group" ]; then
chown -Rh "$my_user:$my_group" "$datadir"
fi
# Start upgrade instance without credentials # Start upgrade instance without credentials
sudo -u "$my_user" mysqld --skip-networking --skip-grant-tables --socket=/tmp/mysql_upgrade.sock & sudo -u "$my_user" mysqld --skip-networking --skip-grant-tables --socket=/tmp/mysql_upgrade.sock &
PID="$!" PID="$!"