install_mysql.sh: set correct name for X Plugin socket in case of MySQL 8.x and above

This commit is contained in:
Christoph 2020-03-01 19:01:34 +01:00
parent 1223afb13e
commit 672b8df4da

View File

@ -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