diff options
Diffstat (limited to '')
-rw-r--r-- | support-files/rpm/server-postin.sh | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh new file mode 100644 index 00000000..525af219 --- /dev/null +++ b/support-files/rpm/server-postin.sh @@ -0,0 +1,77 @@ +if [ -f /usr/lib/systemd/system/mariadb.service -a -x /usr/bin/systemctl ]; then + systemd_conf=/etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf + if [ -x %{_bindir}/mariadb-service-convert -a ! -f "${systemd_conf}" ]; then + # Either fresh install or upgrade non-systemd -> systemd + mkdir -p /etc/systemd/system/mariadb.service.d + %{_bindir}/mariadb-service-convert > "${systemd_conf}" + # Make sure old possibly non-systemd instance is down + if [ $1 = 2 ]; then + SYSTEMCTL_SKIP_REDIRECT=1 %{_sysconfdir}/init.d/mysql stop >/dev/null 2>&1 || : + systemctl start mariadb >/dev/null 2>&1 || : + fi + systemctl enable mariadb.service >/dev/null 2>&1 || : + fi +fi + +# Make MySQL start/shutdown automatically when the machine does it. +if [ $1 = 1 ] ; then + if [ -x /usr/bin/systemctl ] ; then + /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : + /usr/bin/systemctl preset mariadb.service >/dev/null 2>&1 || : + elif [ -x /sbin/chkconfig ] ; then + /sbin/chkconfig --add mysql + fi + + basedir=`%{_bindir}/my_print_defaults --mysqld|sed -ne 's/^--basedir=//p'|tail -1` + if [ -z "$basedir" ] ; then + basedir=%{mysqlbasedir} + fi + + datadir=`%{_bindir}/my_print_defaults --mysqld|sed -ne 's/^--datadir=//p'|tail -1` + if [ -z "$datadir" ] ; then + datadir=%{mysqldatadir} + else + # datadir may be relative to a basedir! + if ! expr $datadir : / > /dev/null; then + datadir=$basedir/$datadir + fi + fi + + # Temporary Workaround for MDEV-11386 - will be corrected in Advance Toolchain 10.0-3 and 8.0-8 + for ldconfig in /opt/at*/sbin/ldconfig; do + test -x $ldconfig && $ldconfig + done + + # Change permissions so that the user that will run the MySQL daemon + # owns all database files. + chown -R -f %{mysqld_user}:%{mysqld_group} $datadir + + if [ ! -e $datadir/mysql ]; then + # Create data directory + mkdir -p $datadir + + # Initiate databases + %{_bindir}/mariadb-install-db --rpm --user=%{mysqld_user} + fi + + # Change permissions again to fix any new files. + chown -R %{mysqld_user}:%{mysqld_group} $datadir + + # Fix permissions for the permission database so that only the user + # can read them. + chmod -R og-rw $datadir/mysql +fi + +# install SELinux files - but don't override existing ones +SETARGETDIR=/etc/selinux/targeted/src/policy +SEDOMPROG=$SETARGETDIR/domains/program +SECONPROG=$SETARGETDIR/file_contexts/program + +if [ -x /usr/sbin/semodule ] ; then + /usr/sbin/semodule -i /usr/share/mysql/policy/selinux/mariadb.pp +fi + +if [ -x /sbin/restorecon ] ; then + /sbin/restorecon -R /var/lib/mysql +fi + |