@@ -912,6 +912,83 @@ get_filename() {
912
912
r_filename=${opt}
913
913
}
914
914
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
+
915
992
#### SCRIPT START
916
993
trap control_c INT
917
994
bootstrap_variables restore_init
@@ -984,6 +1061,20 @@ else
984
1061
fi
985
1062
print_debug "Database Port '${r_dbport}'"
986
1063
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
+
987
1078
## Parse Extension
988
1079
case "${r_filename##*.}" in
989
1080
bz* )
@@ -1013,8 +1104,13 @@ esac
1013
1104
## Perform a restore
1014
1105
case "${r_dbtype}" in
1015
1106
mariadb | mysql )
1107
+ if [[ "${r_ssl,,}" == "false" ]]; then
1108
+ mysql_ssl_option="--disable-ssl"
1109
+ else
1110
+ mysql_ssl_option=""
1111
+ fi
1016
1112
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}
1018
1114
exit_code=$?
1019
1115
;;
1020
1116
pgsql | postgres* )
0 commit comments