diff options
Diffstat (limited to 'support-files/mariadb@.service.in')
-rw-r--r-- | support-files/mariadb@.service.in | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/support-files/mariadb@.service.in b/support-files/mariadb@.service.in index ff87b66bf3c..18adf0e0eac 100644 --- a/support-files/mariadb@.service.in +++ b/support-files/mariadb@.service.in @@ -55,6 +55,21 @@ CapabilityBoundingSet=CAP_IPC_LOCK # Execute pre and post scripts as root, otherwise it does it as User= PermissionsStartOnly=true +# Perform automatic wsrep recovery. When server is started without wsrep, +# galera_recovery simply returns an empty string. In any case, however, +# the script is not expected to return with a non-zero status. +# It is always safe to unset _WSREP_START_POSITION%I environment variable. +ExecStartPre=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION%I" +ExecStartPre=/bin/sh -c "VAR=`/usr/bin/galera_recovery \ + --defaults-file=@INSTALL_SYSCONF2DIR@/my%I.cnf`; [ $? -eq 0 ] && \ + systemctl set-environment _WSREP_START_POSITION%I=$VAR || exit 1" +# Alternate: (remove ConditionPathExists above) +# use [mysqld.INSTANCENAME] as sections in my.cnf +# +#ExecStartPre=/bin/sh -c "VAR=`/usr/bin/galera_recovery \ +# --defaults-group-suffix=%I`; [ $? -eq 0 ] && \ +# systemctl set-environment _WSREP_START_POSITION%I=$VAR || exit 1" + # Needed to create system tables etc. # ExecStartPre=/usr/bin/mysql_install_db -u mysql @@ -67,12 +82,15 @@ PermissionsStartOnly=true # Note: Place $MYSQLD_OPTS at the very end for its options to take precedence. ExecStart=/usr/sbin/mysqld --defaults-file=@INSTALL_SYSCONF2DIR@/my%I.cnf \ - $_WSREP_NEW_CLUSTER $MYSQLD_OPTS + $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION%I $MYSQLD_OPTS # Alternate: (remove ConditionPathExists above) # use [mysqld.INSTANCENAME] as sections in my.cnf # # ExecStart=/usr/sbin/mysqld --defaults-group-suffix=%I \ -# $_WSREP_NEW_CLUSTER $MYSQLD_OPTS +# $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION%I $MYSQLD_OPTS + +# Unset _WSREP_START_POSITION environment variable. +ExecStartPost=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION%I" KillMode=process KillSignal=SIGTERM |