fix(tools): use MariaDB on Debian trixie instead of MySQL repo
MySQL APT repo GPG key (RPM-GPG-KEY-mysql-2023) expired 2025-10-22 and no trixie packages exist. Use distro MariaDB which is a drop-in replacement and natively available.
This commit is contained in:
@@ -6114,44 +6114,21 @@ function setup_mysql() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Debian 13+ Fix: MySQL 8.0 incompatible with libaio1t64, use 8.4 LTS
|
# Debian 13+ Fix: MySQL repo has expired GPG key and no trixie packages, use MariaDB from distro
|
||||||
if [[ "$DISTRO_ID" == "debian" && "$DISTRO_CODENAME" =~ ^(trixie|forky|sid)$ ]]; then
|
if [[ "$DISTRO_ID" == "debian" && "$DISTRO_CODENAME" =~ ^(trixie|forky|sid)$ ]]; then
|
||||||
msg_info "Debian ${DISTRO_CODENAME} detected → using MySQL 8.4 LTS (libaio1t64 compatible)"
|
msg_info "Debian ${DISTRO_CODENAME} detected → using MariaDB from distro repository"
|
||||||
|
|
||||||
if ! download_gpg_key "https://repo.mysql.com/RPM-GPG-KEY-mysql-2023" "/etc/apt/keyrings/mysql.gpg" "dearmor"; then
|
ensure_apt_working || return 1
|
||||||
msg_error "Failed to import MySQL GPG key"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >/etc/apt/sources.list.d/mysql.sources <<EOF
|
install_packages_with_retry "mariadb-server" "mariadb-client" || {
|
||||||
Types: deb
|
msg_error "Failed to install MariaDB from distro repository"
|
||||||
URIs: https://repo.mysql.com/apt/debian/
|
|
||||||
Suites: bookworm
|
|
||||||
Components: mysql-8.4-lts
|
|
||||||
Architectures: $(dpkg --print-architecture)
|
|
||||||
Signed-By: /etc/apt/keyrings/mysql.gpg
|
|
||||||
EOF
|
|
||||||
|
|
||||||
$STD apt update || {
|
|
||||||
msg_error "Failed to update APT for MySQL 8.4 LTS"
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install with retry logic
|
local INSTALLED_VERSION=""
|
||||||
if ! install_packages_with_retry "mysql-community-server" "mysql-community-client"; then
|
INSTALLED_VERSION=$(mariadb --version 2>/dev/null | grep -oP '[0-9]+\.[0-9]+' | head -1) || true
|
||||||
msg_warn "MySQL 8.4 LTS installation failed – falling back to MariaDB"
|
cache_installed_version "mysql" "${INSTALLED_VERSION:-mariadb}"
|
||||||
cleanup_old_repo_files "mysql"
|
msg_ok "Setup MariaDB ${INSTALLED_VERSION:-} (Debian ${DISTRO_CODENAME})"
|
||||||
$STD apt update
|
|
||||||
install_packages_with_retry "mariadb-server" "mariadb-client" || {
|
|
||||||
msg_error "Failed to install database engine (MySQL/MariaDB fallback)"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
msg_ok "Setup Database Engine (MariaDB fallback on Debian ${DISTRO_CODENAME})"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
cache_installed_version "mysql" "8.4"
|
|
||||||
msg_ok "Setup MySQL 8.4 LTS (Debian ${DISTRO_CODENAME})"
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user