fix: validate mysql config from allowed path

This commit is contained in:
tsiji 2026-07-23 13:43:43 +08:00
parent 4d36ab64c8
commit c7135b988f

View File

@ -8,6 +8,7 @@ fi
config_file=$(realpath "$1")
config_target=/etc/mysql/mysql.conf.d/99-mes-prd.cnf
config_candidate=/etc/mysql/mysql.conf.d/.99-mes-prd.cnf.candidate
if [[ ! -s $config_file ]]; then
echo "config file is missing or empty: $config_file" >&2
exit 2
@ -18,11 +19,14 @@ if ! dpkg-query -W mysql-server-8.0 >/dev/null 2>&1; then
exit 1
fi
mysqld --defaults-file="$config_file" --validate-config
install -m 0644 "$config_file" "$config_candidate"
trap '[[ ! -e $config_candidate ]] || unlink "$config_candidate"' EXIT
mysqld --defaults-file="$config_candidate" --validate-config
if [[ -e $config_target ]]; then
unlink "$config_target"
fi
install -m 0644 "$config_file" "$config_target"
mv "$config_candidate" "$config_target"
trap - EXIT
systemctl restart mysql
systemctl is-active --quiet mysql
mysql --batch --skip-column-names -e \