diff --git a/install_mysql.sh b/install_mysql.sh index 12d2f08..b10b43a 100755 --- a/install_mysql.sh +++ b/install_mysql.sh @@ -7,7 +7,7 @@ _MYSQL_SRC_BASE_DIR=$(dirname $(realpath $0)) _MYSQL_LOG_DIR=/var/log/mysql _MYSQL_PORT=3306 -_MYSQL_UNIX_SOCKET=/tmp/mysql.sock +_MYSQL_UNIX_SOCKET=/var/run/mysqld/mysqld.sock _MYSQL_USER=mysql @@ -815,7 +815,7 @@ fi MYSQL_SERVICE_FILE="" MYSQL_SYSV_INIT_SCRIPT="" -SYSTEMD_PID_DIR="" +SYSTEMD_PID_DIR="$(dirname "$MYSQL_UNIX_SOCKET")" if $INSTALL_SYSTEMD_SERVICE ; then if $PARALLEL_INSTALLATION ; then @@ -1984,7 +1984,8 @@ fi if $INSTALL_SYSTEMD_SERVICE ; then - if [[ "$MYSQL_DISTRIBUTION" != "MariaDB" ]] ; then + #if [[ "$MYSQL_DISTRIBUTION" != "MariaDB" ]] ; then + if [[ -n "$SYSTEMD_PID_DIR" ]] ; then if [[ ! -d "$SYSTEMD_PID_DIR" ]] ; then echononl "Create PID directory '$SYSTEMD_PID_DIR' .." @@ -2014,6 +2015,31 @@ if $INSTALL_SYSTEMD_SERVICE ; then echo_failed error "Changing owner of PID directory '$SYSTEMD_PID_DIR' failed!" fi + + echononl "Force systemd to create PID file directory on each startup.." + echo "" >> ${logdir}/main.log + echo "## - Force systemd to create PID file directory on each startup." + echo "## -" >> ${logdir}/main.log + echo "## - Create '/etc/tmpfiles.d/mysql.conf' with content:" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "## - # systemd tmpfile settings for mysql or mariadb" >> ${logdir}/main.log + echo "## - d $SYSTEMD_PID_DIR 0755 $MYSQL_USER $MYSQL_GROUP -" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "" >> ${logdir}/main.log + echo "cat << EOF > /etc/tmpfiles.d/mysql.conf +# systemd tmpfile settings for mysql or mariadb +d $SYSTEMD_PID_DIR 0755 $MYSQL_USER $MYSQL_GROUP - +EOF" >> ${logdir}/main.log + cat < /etc/tmpfiles.d/mysql.conf +# systemd tmpfile settings for mysql or mariadb +d $SYSTEMD_PID_DIR 0755 $MYSQL_USER $MYSQL_GROUP - +EOF + if [[ $? -eq 0 ]] ; then + echo_ok + else + echo_failed + error "Creating file '/etc/tmpfiles.d/mysql.conf' failed!" + fi fi fi @@ -3137,8 +3163,13 @@ mysqlx_socket = $MYSQL_X_UNIX_SOCKET " >> ${logdir}/main.log fi - echo "cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf + if [[ -n "$SYSTEMD_PID_DIR" ]] && [[ "$SYSTEMD_PID_DIR" != "/tmp" ]]; then + echo " +pid-file = ${SYSTEMD_PID_DIR}/mysqld.pid +" >> ${logdir}/main.log + fi + echo " ## - character-set-server ## - @@ -4099,6 +4130,11 @@ EOF cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf mysqlx_port = $MYSQL_X_PORT mysqlx_socket = $MYSQL_X_UNIX_SOCKET +EOF + fi + if [[ -n "$SYSTEMD_PID_DIR" ]]; then + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +pid-file = ${SYSTEMD_PID_DIR}/mysqld.pid EOF fi