@@ -912,6 +912,83 @@ get_filename() {
912912 r_filename=${opt}
913913}
914914
915+ get_ssl() {
916+ if grep -q "^DB${detected_host_num}_MYSQL_ENABLE_TLS=" "${restore_vars}" ; then
917+ detected_ssl_value=$(grep "^DB${detected_host_num}_MYSQL_ENABLE_TLS=" "${restore_vars}" | head -n1 | cut -d '=' -f 2)
918+ fi
919+
920+ if [[ -z "${detected_ssl_value}" ]]; then
921+ print_debug "Parsed SSL Variant: 1 - No Env Variable Found"
922+ default_ssl="false" # Default if no env variable
923+ q_ssl_variant=1
924+ q_ssl_menu_opt_default="| (${cwh}N${cdgy}) * "
925+ q_ssl_menu="" #No menu option
926+ else
927+ print_debug "Parsed SSL Variant: 2 - Env Variable DB${detected_host_num}_MYSQL_ENABLE_TLS = '${detected_ssl_value}'"
928+ default_ssl="${detected_ssl_value,,}"
929+ q_ssl_variant=2
930+ q_ssl_menu="E ) Environment Variable DB${detected_host_num}_MYSQL_ENABLE_TLS: '${detected_ssl_value}'"
931+ q_ssl_menu_opt_default="| (${cwh}E${cdgy}) * "
932+ fi
933+
934+ cat <<EOF
935+
936+ Do you wish to use SSL for the connection?
937+ ${q_ssl_menu}
938+
939+ Y ) Yes
940+ N ) No
941+ Q ) Quit
942+
943+ EOF
944+
945+ r_ssl=""
946+ case "${q_ssl_variant}" in
947+ 1) # No env variable, ask directly
948+ while true; do
949+ read -r -p "$(echo -e ${clg}** ${cdgy}Enter Value \(${cwh}Y${cdgy}\) \| \(${cwh}N\*${cdgy}\) : ${cwh}${coff}) " q_ssl
950+ case "${q_ssl,,}" in
951+ y*)
952+ r_ssl="true"
953+ break
954+ ;;
955+ n* | "")
956+ r_ssl="false"
957+ break
958+ ;;
959+ q*)
960+ print_info "Quitting Script"
961+ exit 1
962+ ;;
963+ esac
964+ done
965+ ;;
966+ 2) # Env variable exists, offer it as an option
967+ while true; do
968+ read -r -p "$(echo -e ${clg}** ${cdgy}Enter Value \(${cwh}E\*${cdgy}\) \| \(${cwh}Y${cdgy}\) \| \(${cwh}N${cdgy}\) : ${cwh}${coff}) " q_ssl
969+ case "${q_ssl,,}" in
970+ e* | "") # Default to env variable if just enter is pressed.
971+ r_ssl="${detected_ssl_value}"
972+ break
973+ ;;
974+ y*)
975+ r_ssl="true"
976+ break
977+ ;;
978+ n*)
979+ r_ssl="false"
980+ break
981+ ;;
982+ q*)
983+ print_info "Quitting Script"
984+ exit 1
985+ ;;
986+ esac
987+ done
988+ ;;
989+ esac
990+ }
991+
915992#### SCRIPT START
916993trap control_c INT
917994bootstrap_variables restore_init
@@ -984,6 +1061,20 @@ else
9841061fi
9851062print_debug "Database Port '${r_dbport}'"
9861063
1064+ ## Question SSL connection
1065+ if [[ "${r_dbtype,,}" == "mariadb" || "${r_dbtype,,}" == "mysql" ]]; then
1066+ if [ -n "${8}" ]; then
1067+ r_ssl="${8}"
1068+ else
1069+ get_ssl
1070+ fi
1071+ print_debug "SSL enable: '${r_ssl}'"
1072+ else
1073+ r_ssl="false"
1074+ print_debug "SSL disabled for ${r_dbtype}"
1075+ fi
1076+
1077+
9871078## Parse Extension
9881079case "${r_filename##*.}" in
9891080 bz* )
@@ -1013,8 +1104,13 @@ esac
10131104## Perform a restore
10141105case "${r_dbtype}" in
10151106 mariadb | mysql )
1107+ if [[ "${r_ssl,,}" == "false" ]]; then
1108+ mysql_ssl_option="--disable-ssl"
1109+ else
1110+ mysql_ssl_option=""
1111+ fi
10161112 print_info "Restoring '${r_filename}' into '${r_dbhost}'/'${r_dbname}'"
1017- pv ${r_filename} | ${decompress_cmd}cat | mysql -u${r_dbuser} -p${r_dbpass} -P${r_dbport} -h${r_dbhost} ${r_dbname}
1113+ pv ${r_filename} | ${decompress_cmd}cat | mariadb -u${r_dbuser} -p${r_dbpass} -P${r_dbport} -h${r_dbhost} ${mysql_ssl_option } ${r_dbname}
10181114 exit_code=$?
10191115 ;;
10201116 pgsql | postgres* )
0 commit comments