@@ -302,28 +302,34 @@ install_mysql() {
302302 msg_info " MySQL $CURRENT_VERSION found, replacing with $MYSQL_VERSION "
303303 NEED_INSTALL=true
304304 else
305- msg_ok " MySQL $MYSQL_VERSION already installed"
305+ # Check for patch-level updates
306+ if apt list --upgradable 2> /dev/null | grep -q ' ^mysql-server/' ; then
307+ msg_info " MySQL $CURRENT_VERSION available for upgrade"
308+ $STD apt-get update
309+ $STD apt-get install --only-upgrade -y mysql-server
310+ msg_ok " MySQL upgraded"
311+ fi
312+ return
306313 fi
307314 else
308- msg_info " MySQL not found, installing version $MYSQL_VERSION "
315+ msg_info " Installing MySQL $MYSQL_VERSION "
309316 NEED_INSTALL=true
310317 fi
311318
312319 if [[ " $NEED_INSTALL " == true ]]; then
313- msg_info " Removing conflicting MySQL packages"
314320 $STD systemctl stop mysql > /dev/null 2>&1 || true
315- $STD apt-get purge -y ' mysql* '
321+ $STD apt-get purge -y " ^ mysql-server.* " " ^mysql-client.* " " ^mysql-common.* " || true
316322 rm -f /etc/apt/sources.list.d/mysql.list /etc/apt/trusted.gpg.d/mysql.gpg
317323
318- msg_info " Setting up MySQL APT Repository "
324+ local DISTRO_CODENAME
319325 DISTRO_CODENAME=" $( awk -F= ' /VERSION_CODENAME/ { print $2 }' /etc/os-release) "
320- curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | gpg --dearmor -o /etc/apt/trusted.gpg.d/mysql.gpg
326+ curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 | gpg --dearmor -o /etc/apt/trusted.gpg.d/mysql.gpg
321327 echo " deb [signed-by=/etc/apt/trusted.gpg.d/mysql.gpg] https://repo.mysql.com/apt/debian/ ${DISTRO_CODENAME} mysql-${MYSQL_VERSION} " \
322328 > /etc/apt/sources.list.d/mysql.list
323329
330+ export DEBIAN_FRONTEND=noninteractive
324331 $STD apt-get update
325332 $STD apt-get install -y mysql-server
326-
327333 msg_ok " Installed MySQL $MYSQL_VERSION "
328334 fi
329335}
0 commit comments