mariadb/scripts/galera_new_cluster.sh
Daniel Black 649216e70d MDEV-37726 wsrep-new-cluster and wsrep-start-position in wrong directory with wrong selinux permissions
After moving the systemd service to using environment files
instead of `systemctl set-environment` in 11.6 (MDEV-19210),
they (wsrep-new-cluster and wsrep-start-position) are located
in /var/lib/mysql along with the socket file in
Fedora/RHEL-based distros. This causes them to have incorrect
selinux permissions and therefore be not readable by systemd.

A solution is to generate these files in the run directory,
instead, which already has correct selinux label mysqld_var_run_t
mysql-selinux-1.0.12. Dissociating these files and the socket
in CMake configs can also prove useful for other things.

This also corrects some of the duplicate code in the build
scripts and made INSTALL_RUNDATADIR into a proper location
and used this for the tmpfiles where the temporary files
are created.

Debian's location is /run/mysqld/ matching its INSTALL_UNIX_ADDRDIR,
which is now a temporary location controlled by tmpfiles.
2025-10-25 10:23:26 +11:00

31 lines
953 B
Bash
Executable file

#!/bin/sh
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
if [ "${1}" = "-h" ] || [ "${1}" = "--help" ]; then
cat <<EOF
Usage: ${0}
The script galera_new_cluster is used to bootstrap new Galera Cluster,
when all the nodes are down. Run galera_new_cluster on the first node only.
On the remaining nodes simply run 'service @DAEMON_NAME@ start'.
For more information on Galera Cluster configuration and usage see:
https://mariadb.com/kb/en/mariadb/getting-started-with-mariadb-galera-cluster/
EOF
exit 0
fi
echo _WSREP_NEW_CLUSTER='--wsrep-new-cluster' > "@INSTALL_RUNDATADIR@/wsrep-new-cluster" && \
systemctl restart mariadb.service
extcode=$?
rm -f "@INSTALL_RUNDATADIR@/wsrep-new-cluster"
exit $extcode