26 lines
1.1 KiB
Bash
Executable File
26 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Exit immediately on error, treat unset variables as errors, propagate pipe failures.
|
|
set -euo pipefail
|
|
# Load shared log/warn/skip helpers from the installer library.
|
|
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
|
|
|
log "Installing MariaDB..."
|
|
# Arch ships MariaDB as the default MySQL-compatible database server.
|
|
sudo pacman -S --noconfirm --needed mariadb
|
|
|
|
# Guard against re-initialising an existing database; the mysql/ subdirectory
|
|
# is created by mariadb-install-db and its presence means the data dir is ready.
|
|
if [[ ! -d /var/lib/mysql/mysql ]]; then
|
|
log "Initialising MariaDB data directory..."
|
|
# mariadb-install-db creates the system tables under /var/lib/mysql,
|
|
# running as the dedicated mysql system user for correct file ownership.
|
|
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
|
|
else
|
|
skip "MariaDB data directory already initialised."
|
|
fi
|
|
|
|
log "Enabling MariaDB service..."
|
|
# enable --now: persist across reboots and start the daemon in the current session.
|
|
enable_service mariadb.service; start_service mariadb.service
|
|
log "MariaDB installed and running."
|