Update tools.func

This commit is contained in:
CanbiZ 2025-11-10 13:05:04 +01:00
parent 8f72839259
commit e46a32968a

View File

@ -3044,6 +3044,69 @@ setup_mariadb() {
msg_ok "Setup MariaDB $MARIADB_VERSION" msg_ok "Setup MariaDB $MARIADB_VERSION"
} }
# ------------------------------------------------------------------------------
# Creates MariaDB database with user and optional grants / sql-modes
#
# Variablen:
# DB_NAME - Datenbankname (required)
# DB_USER - Datenbank Benutzer (required)
# DB_PASS - Passwort (optional, auto-gen wenn leer)
# DB_CREDS_FILE - Credentials File (optional default ~/mariadb_${DB_NAME}.creds)
# DB_EXTRA_GRANTS - (optional) Komma-separiert, volle SQL Grant Statements
# Beispiel: "GRANT SELECT ON \`mysql\`.\`time_zone_name\`"
# DB_SQL_MODE - (optional) z.B. "" oder "STRICT_TRANS_TABLES"
#
# exports:
# MARIADB_DB_NAME, MARIADB_DB_USER, MARIADB_DB_PASS
# ------------------------------------------------------------------------------
function setup_mariadb_db() {
if [[ -z "$DB_NAME" || -z "$DB_USER" ]]; then
msg_error "DB_NAME und DB_USER müssen gesetzt sein"
return 1
fi
if [[ -z "$DB_PASS" ]]; then
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
fi
msg_info "Setting up MariaDB Database"
$STD mariadb -u root -e "CREATE DATABASE \`$DB_NAME\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL ON \`$DB_NAME\`.* TO '$DB_USER'@'localhost';"
# optional extra grants
if [[ -n "$DB_EXTRA_GRANTS" ]]; then
IFS=',' read -ra G_LIST <<<"$DB_EXTRA_GRANTS"
for g in "${G_LIST[@]}"; do
g=$(echo "$g" | xargs)
$STD mariadb -u root -e "$g TO '$DB_USER'@'localhost';"
done
fi
# optional sql mode
if [[ -n "$DB_SQL_MODE" ]]; then
$STD mariadb -u root -e "SET GLOBAL sql_mode='$DB_SQL_MODE';"
fi
$STD mariadb -u root -e "FLUSH PRIVILEGES;"
local CREDS_FILE="${DB_CREDS_FILE:-~/${APPLICATION}.creds}"
{
echo "MariaDB Credentials"
echo "Database: $DB_NAME"
echo "User: $DB_USER"
echo "Password: $DB_PASS"
} >>"$CREDS_FILE"
msg_ok "Set up MariaDB Database"
export MARIADB_DB_NAME="$DB_NAME"
export MARIADB_DB_USER="$DB_USER"
export MARIADB_DB_PASS="$DB_PASS"
}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Installs or updates MongoDB to specified major version. # Installs or updates MongoDB to specified major version.
# #