feat: support MySQL SSL connection (close #185)

This commit is contained in:
ttionya
2025-02-18 19:39:25 +08:00
parent d8238694cb
commit 729f828b81
4 changed files with 45 additions and 2 deletions
@@ -40,6 +40,18 @@ Default: `vaultwarden`
MySQL(MariaDB) password, **required**.
#### MYSQL_SSL_CA
The path to the CA certificate for TLS connection (optional).
#### MYSQL_SSL_CERT
The path to the client certificate for TLS connection (optional).
#### MYSQL_SSL_KEY
The path to the client key for TLS connection (optional).
<br>
+12 -1
View File
@@ -52,7 +52,18 @@ function backup_db_postgresql() {
function backup_db_mysql() {
color blue "backup vaultwarden mysql database"
mariadb-dump -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" > "${BACKUP_FILE_DB_MYSQL}"
local EXTRA_OPTIONS=()
if [[ -n "${MYSQL_SSL_CA}" ]]; then
EXTRA_OPTIONS+=("--ssl-ca=\"${MYSQL_SSL_CA}\"")
fi
if [[ -n "${MYSQL_SSL_CERT}" ]]; then
EXTRA_OPTIONS+=("--ssl-cert=\"${MYSQL_SSL_CERT}\"")
fi
if [[ -n "${MYSQL_SSL_KEY}" ]]; then
EXTRA_OPTIONS+=("--ssl-key=\"${MYSQL_SSL_KEY}\"")
fi
eval "mariadb-dump -h \"${MYSQL_HOST}\" -P \"${MYSQL_PORT}\" -u \"${MYSQL_USERNAME}\" -p\"${MYSQL_PASSWORD}\" ${EXTRA_OPTIONS[@]} \"${MYSQL_DATABASE}\" > \"${BACKUP_FILE_DB_MYSQL}\""
if [[ $? != 0 ]]; then
color red "backup vaultwarden mysql database failed"
+9
View File
@@ -492,6 +492,15 @@ function init_env_db() {
# MYSQL_PASSWORD
get_env MYSQL_PASSWORD
# MYSQL_SSL_CA
get_env MYSQL_SSL_CA
# MYSQL_SSL_CERT
get_env MYSQL_SSL_CERT
# MYSQL_SSL_KEY
get_env MYSQL_SSL_KEY
else # sqlite
DB_TYPE="SQLITE"
fi
+12 -1
View File
@@ -90,7 +90,18 @@ function restore_db_postgresql() {
function restore_db_mysql() {
color blue "restore vaultwarden mysql database"
mariadb -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" < "${RESTORE_FILE_DB}"
local EXTRA_OPTIONS=()
if [[ -n "${MYSQL_SSL_CA}" ]]; then
EXTRA_OPTIONS+=("--ssl-ca=\"${MYSQL_SSL_CA}\"")
fi
if [[ -n "${MYSQL_SSL_CERT}" ]]; then
EXTRA_OPTIONS+=("--ssl-cert=\"${MYSQL_SSL_CERT}\"")
fi
if [[ -n "${MYSQL_SSL_KEY}" ]]; then
EXTRA_OPTIONS+=("--ssl-key=\"${MYSQL_SSL_KEY}\"")
fi
eval "mariadb -h \"${MYSQL_HOST}\" -P \"${MYSQL_PORT}\" -u \"${MYSQL_USERNAME}\" -p\"${MYSQL_PASSWORD}\" ${EXTRA_OPTIONS[@]} \"${MYSQL_DATABASE}\" < \"${RESTORE_FILE_DB}\""
if [[ $? == 0 ]]; then
color green "restore vaultwarden mysql database successful"