fix: validate mysql config from allowed path
This commit is contained in:
parent
4d36ab64c8
commit
c7135b988f
@ -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 \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user