refactor: use root credentials to create database dump

This fixes an issue introduced in mysql 8.0.32 where we now need RELOAD and PROCESS to make a dump. Since we already import via root, exporting via root should be fine as well.
This commit is contained in:
josegonzalez
2023-03-05 04:46:02 -05:00
committed by GitHub
parent fce19e6116
commit 9354d90156

View File

@@ -113,12 +113,10 @@ service_export() {
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
local SERVICE_NAME="$(get_service_name "$SERVICE")" local SERVICE_NAME="$(get_service_name "$SERVICE")"
local DATABASE_NAME="$(get_database_name "$SERVICE")" local DATABASE_NAME="$(get_database_name "$SERVICE")"
local PASSWORD="$(service_password "$SERVICE")" local ROOTPASSWORD="$(service_root_password "$SERVICE")"
[[ -n $SSH_TTY ]] && stty -opost [[ -n $SSH_TTY ]] && stty -opost
"$DOCKER_BIN" container exec "$SERVICE_NAME" bash -c "printf '[client]\ndefault-character-set=utf8mb4\npassword=$PASSWORD\n' > /root/credentials.cnf" "$DOCKER_BIN" container exec "$SERVICE_NAME" mysqldump --default-character-set=utf8mb4 --user=root --password="$ROOTPASSWORD" --single-transaction --no-tablespaces --quick "$DATABASE_NAME"
"$DOCKER_BIN" container exec "$SERVICE_NAME" mysqldump --defaults-extra-file=/root/credentials.cnf --user=mysql --single-transaction --no-tablespaces --quick "$DATABASE_NAME"
"$DOCKER_BIN" container exec "$SERVICE_NAME" rm /root/credentials.cnf
status=$? status=$?
[[ -n $SSH_TTY ]] && stty opost [[ -n $SSH_TTY ]] && stty opost
exit $status exit $status