diff --git a/install_mysql.sh b/install_mysql.sh index 336ea0a..4028a5a 100755 --- a/install_mysql.sh +++ b/install_mysql.sh @@ -593,6 +593,18 @@ do fi done + +# Unix socket file which X Plugin uses for connections. +# +if [[ "${MYSQL_DISTRIBUTION,,}" = 'mysql' ]] && [[ ${MYSQL_MAJOR_VERSION} -ge 8 ]] ; then + BASE_NAME_UNIX_SOCKET="$(basename ${MYSQL_UNIX_SOCKET})" + MYSQL_X_UNIX_SOCKET="$(dirname ${MYSQL_UNIX_SOCKET})/${BASE_NAME_UNIX_SOCKET%.*}x.${BASE_NAME_UNIX_SOCKET##*.}" + MYSQL_X_PORT="${MYSQL_PORT}0" +else + MYSQL_X_UNIX_SOCKET="" + MYSQL_X_PORT="" +fi + echo "" echo "--" echo "" @@ -864,6 +876,10 @@ echo "Datenbankverzeichnis......: $MYSQL_DATA_DIR" echo "Log Verzeichnis...........: $MYSQL_LOG_DIR" echo "TCP Port..................: $MYSQL_PORT" echo "Unix Socket...............: $MYSQL_UNIX_SOCKET" +if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + echo " Unix Socket (X Plugin)..: $MYSQL_X_UNIX_SOCKET" + echo " TCP Port (X Plugin).....: $MYSQL_X_PORT" +fi echo "MySQL-User................: $MYSQL_USER" echo "MySQL-Gruppe..............: $MYSQL_GROUP" echo "" @@ -981,6 +997,10 @@ echo "## - Datenbankverzeichnis......: $MYSQL_DATA_DIR" >> ${logdir}/main.log echo "## - Log Verzeichnis...........: $MYSQL_LOG_DIR" >> ${logdir}/main.log echo "## - TCP Port..................: $MYSQL_PORT" >> ${logdir}/main.log echo "## - Unix Socket...............: $MYSQL_UNIX_SOCKET" >> ${logdir}/main.log +if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + echo "## - Unix Socket (X Plugin)..: $MYSQL_X_UNIX_SOCKET" >> ${logdir}/main.log + echo "## - TCP Port (X Plugin).....: $MYSQL_X_PORT" >> ${logdir}/main.log +fi echo "## - MySQL-User................: $MYSQL_USER" >> ${logdir}/main.log echo "## - MySQL-Gruppe..............: $MYSQL_GROUP" >> ${logdir}/main.log echo "## - " >> ${logdir}/main.log @@ -1030,6 +1050,10 @@ echo "MYSQL_DATA_DIR=$MYSQL_DATA_DIR" >> ${logdir}/main.log echo "MYSQL_LOG_DIR=$MYSQL_LOG_DIR" >> ${logdir}/main.log echo "MYSQL_PORT=$MYSQL_PORT" >> ${logdir}/main.log echo "MYSQL_UNIX_SOCKET=$MYSQL_UNIX_SOCKET" >> ${logdir}/main.log +if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + echo "MYSQL_X_UNIX_SOCKET=$MYSQL_X_UNIX_SOCKET" + echo "MYSQL_X_PORT=$MYSQL_X_PORT" +fi echo "MYSQL_USER=$MYSQL_USER" >> ${logdir}/main.log echo "MYSQL_GROUP=$MYSQL_GROUP" >> ${logdir}/main.log echo "" >> ${logdir}/main.log @@ -2076,6 +2100,58 @@ fi #echo "" #sleep 120 +BOOST_ARCHIV="$(grep "SET(BOOST_PACKAGE_NAME" ${MYSQL_SRC_DIR}/cmake/boost.cmake \ + | grep -o -w -E "boost_[0-9]{1,2}_[0-9]{1,2}_[0-9]{1,2}").tar.gz" + +if [[ -f "${MYSQL_SRC_BASE_DIR}/$BOOST_ARCHIV" ]] ; then + + echononl "Erstelle Installations Verzeichnis '$(basename $MYSQL_INSTALL_DIR)'.." + echo "" >> ${logdir}/main.log + echo "## - Erstelle Installations Verzeichnis '$(basename $MYSQL_INSTALL_DIR)'" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "mkdir $MYSQL_INSTALL_DIR" >> ${logdir}/main.log + mkdir "$MYSQL_INSTALL_DIR" >> ${logdir}/main.log 2>&1 + if [[ $? -ne 0 ]] ; then + echo_failed + + error Erstellen des Installations Verzeichnisses $MYSQL_INSTALL_DIR ist fehlgeschlagen.. + + echononl "continue anyway [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/no]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + else + echo_ok + fi + + echononl "Kopiere '$BOOST_ARCHIV' nach '$(basename $MYSQL_INSTALL_DIR)'.." + echo "" >> ${logdir}/main.log + echo "## - Kopiere '$BOOST_ARCHIV' nach '$(basename $MYSQL_INSTALL_DIR)'.." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "cp \"${MYSQL_SRC_BASE_DIR}/$BOOST_ARCHIV\" \"$MYSQL_INSTALL_DIR)\"" >> ${logdir}/main.log + cp "${MYSQL_SRC_BASE_DIR}/$BOOST_ARCHIV" "$MYSQL_INSTALL_DIR" >> ${logdir}/main.log 2>&1 + if [[ $? -ne 0 ]] ; then + echo_failed + + error "Kann '$BOOST_ARCHIV' nicht in das Installations Verzeichniss '$MYSQL_INSTALL_DIR' kopieren.." + + echononl "continue anyway [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/no]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + else + echo_ok + fi + +fi # - Erstelle Optionen für 'cmake' @@ -2930,7 +3006,18 @@ socket = $MYSQL_UNIX_SOCKET # This was formally known as [safe_mysqld]. Both versions are currently parsed. [mysqld_safe] +port = $MYSQL_PORT socket = $MYSQL_UNIX_SOCKET +" >> ${logdir}/main.log + + if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + echo " +mysqlx_port = $MYSQL_X_PORT +mysqlx_socket = $MYSQL_X_UNIX_SOCKET +" >> ${logdir}/main.log + fi + + echo " nice = 0 open-files-limit = $(ulimit -Hn) @@ -2941,6 +3028,16 @@ innodb-open-files = $(ulimit -Hn) [mysqld] port = $MYSQL_PORT socket = $MYSQL_UNIX_SOCKET +" >> ${logdir}/main.log + + if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + echo " +mysqlx_port = $MYSQL_X_PORT +mysqlx_socket = $MYSQL_X_UNIX_SOCKET +" >> ${logdir}/main.log + fi + + echo "cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - character-set-server @@ -3876,7 +3973,17 @@ socket = $MYSQL_UNIX_SOCKET # This was formally known as [safe_mysqld]. Both versions are currently parsed. [mysqld_safe] +port = $MYSQL_PORT socket = $MYSQL_UNIX_SOCKET +EOF + if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +mysqlx_port = $MYSQL_X_PORT +mysqlx_socket = $MYSQL_X_UNIX_SOCKET +EOF + fi + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf nice = 0 open-files-limit = $(ulimit -Hn) @@ -3887,6 +3994,15 @@ innodb-open-files = $(ulimit -Hn) [mysqld] port = $MYSQL_PORT socket = $MYSQL_UNIX_SOCKET +EOF + if [[ -n "$MYSQL_X_UNIX_SOCKET" ]] ; then + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +mysqlx_port = $MYSQL_X_PORT +mysqlx_socket = $MYSQL_X_UNIX_SOCKET +EOF + fi + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - character-set-server