Open samuira opened 5 years ago
Looks like you enabled debug. Can you paste the lines here or link to a gist? Please be careful to scrub any sensitive data.
I have the same issue trying to restore my vaultwarden database. This is my log:
+ file_env DB_SERVER
+ local var=DB_SERVER
+ local fileVar=DB_SERVER_FILE
+ local def=
+ '[' internalip ']'
+ '[' '' ']'
+ local val=
+ '[' internalip ']'
+ val=internalip
+ export DB_SERVER=internalip
+ DB_SERVER=internalip
+ unset DB_SERVER_FILE
+ file_env DB_PORT
+ local var=DB_PORT
+ local fileVar=DB_PORT_FILE
+ local def=
+ '[' 3306 ']'
+ '[' '' ']'
+ local val=
+ '[' 3306 ']'
+ val=3306
+ export DB_PORT=3306
+ DB_PORT=3306
+ unset DB_PORT_FILE
+ file_env DB_USER
+ local var=DB_USER
+ local fileVar=DB_USER_FILE
+ local def=
+ '[' root ']'
+ '[' '' ']'
+ local val=
+ '[' root ']'
+ val=root
+ export DB_USER=root
+ DB_USER=root
+ unset DB_USER_FILE
+ file_env DB_PASS
+ local var=DB_PASS
+ local fileVar=DB_PASS_FILE
+ local def=
+ '[' 'mypassword' ']'
+ '[' '' ']'
+ local val=
+ '[' 'mypassword' ']'
+ val='mypassword'
+ export 'DB_PASS=mypassword'
+ DB_PASS='mypassword'
+ unset DB_PASS_FILE
+ file_env DB_NAMES
+ local var=DB_NAMES
+ local fileVar=DB_NAMES_FILE
+ local def=
+ '[' vaultwarden ']'
+ '[' '' ']'
+ local val=
+ '[' vaultwarden ']'
+ val=vaultwarden
+ export DB_NAMES=vaultwarden
+ DB_NAMES=vaultwarden
+ unset DB_NAMES_FILE
+ file_env DB_NAMES_EXCLUDE
+ local var=DB_NAMES_EXCLUDE
+ local fileVar=DB_NAMES_EXCLUDE_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export DB_NAMES_EXCLUDE=
+ DB_NAMES_EXCLUDE=
+ unset DB_NAMES_EXCLUDE_FILE
+ file_env DB_DUMP_FREQ 1440
+ local var=DB_DUMP_FREQ
+ local fileVar=DB_DUMP_FREQ_FILE
+ local def=1440
+ '[' '' ']'
+ local val=1440
+ '[' '' ']'
+ '[' '' ']'
+ export DB_DUMP_FREQ=1440
+ DB_DUMP_FREQ=1440
+ unset DB_DUMP_FREQ_FILE
+ file_env DB_DUMP_BEGIN +0
+ local var=DB_DUMP_BEGIN
+ local fileVar=DB_DUMP_BEGIN_FILE
+ local def=+0
+ '[' '' ']'
+ local val=+0
+ '[' '' ']'
+ '[' '' ']'
+ export DB_DUMP_BEGIN=+0
+ DB_DUMP_BEGIN=+0
+ unset DB_DUMP_BEGIN_FILE
+ file_env DB_DUMP_DEBUG
+ local var=DB_DUMP_DEBUG
+ local fileVar=DB_DUMP_DEBUG_FILE
+ local def=
+ '[' true ']'
+ '[' '' ']'
+ local val=
+ '[' true ']'
+ val=true
+ export DB_DUMP_DEBUG=true
+ DB_DUMP_DEBUG=true
+ unset DB_DUMP_DEBUG_FILE
+ file_env DB_DUMP_TARGET /backup
+ local var=DB_DUMP_TARGET
+ local fileVar=DB_DUMP_TARGET_FILE
+ local def=/backup
+ '[' '' ']'
+ local val=/backup
+ '[' '' ']'
+ '[' '' ']'
+ export DB_DUMP_TARGET=/backup
+ DB_DUMP_TARGET=/backup
+ unset DB_DUMP_TARGET_FILE
+ file_env DB_DUMP_BY_SCHEMA
+ local var=DB_DUMP_BY_SCHEMA
+ local fileVar=DB_DUMP_BY_SCHEMA_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export DB_DUMP_BY_SCHEMA=
+ DB_DUMP_BY_SCHEMA=
+ unset DB_DUMP_BY_SCHEMA_FILE
+ file_env DB_DUMP_KEEP_PERMISSIONS true
+ local var=DB_DUMP_KEEP_PERMISSIONS
+ local fileVar=DB_DUMP_KEEP_PERMISSIONS_FILE
+ local def=true
+ '[' '' ']'
+ local val=true
+ '[' '' ']'
+ '[' '' ']'
+ export DB_DUMP_KEEP_PERMISSIONS=true
+ DB_DUMP_KEEP_PERMISSIONS=true
+ unset DB_DUMP_KEEP_PERMISSIONS_FILE
+ file_env DB_RESTORE_TARGET
+ local var=DB_RESTORE_TARGET
+ local fileVar=DB_RESTORE_TARGET_FILE
+ local def=
+ '[' /backup/db_backup_2023-01-23T23:30:01Z.tgz ']'
+ '[' '' ']'
+ local val=
+ '[' /backup/db_backup_2023-01-23T23:30:01Z.tgz ']'
+ val=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ export DB_RESTORE_TARGET=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ DB_RESTORE_TARGET=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ unset DB_RESTORE_TARGET_FILE
+ file_env AWS_ENDPOINT_URL
+ local var=AWS_ENDPOINT_URL
+ local fileVar=AWS_ENDPOINT_URL_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_ENDPOINT_URL=
+ AWS_ENDPOINT_URL=
+ unset AWS_ENDPOINT_URL_FILE
+ file_env AWS_ENDPOINT_OPT
+ local var=AWS_ENDPOINT_OPT
+ local fileVar=AWS_ENDPOINT_OPT_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_ENDPOINT_OPT=
+ AWS_ENDPOINT_OPT=
+ unset AWS_ENDPOINT_OPT_FILE
+ file_env AWS_CLI_OPTS
+ local var=AWS_CLI_OPTS
+ local fileVar=AWS_CLI_OPTS_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_CLI_OPTS=
+ AWS_CLI_OPTS=
+ unset AWS_CLI_OPTS_FILE
+ file_env AWS_CLI_S3_CP_OPTS
+ local var=AWS_CLI_S3_CP_OPTS
+ local fileVar=AWS_CLI_S3_CP_OPTS_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_CLI_S3_CP_OPTS=
+ AWS_CLI_S3_CP_OPTS=
+ unset AWS_CLI_S3_CP_OPTS_FILE
+ file_env AWS_ACCESS_KEY_ID
+ local var=AWS_ACCESS_KEY_ID
+ local fileVar=AWS_ACCESS_KEY_ID_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_ACCESS_KEY_ID=
+ AWS_ACCESS_KEY_ID=
+ unset AWS_ACCESS_KEY_ID_FILE
+ file_env AWS_SECRET_ACCESS_KEY
+ local var=AWS_SECRET_ACCESS_KEY
+ local fileVar=AWS_SECRET_ACCESS_KEY_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_SECRET_ACCESS_KEY=
+ AWS_SECRET_ACCESS_KEY=
+ unset AWS_SECRET_ACCESS_KEY_FILE
+ file_env AWS_DEFAULT_REGION
+ local var=AWS_DEFAULT_REGION
+ local fileVar=AWS_DEFAULT_REGION_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export AWS_DEFAULT_REGION=
+ AWS_DEFAULT_REGION=
+ unset AWS_DEFAULT_REGION_FILE
+ file_env SMB_USER
+ local var=SMB_USER
+ local fileVar=SMB_USER_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export SMB_USER=
+ SMB_USER=
+ unset SMB_USER_FILE
+ file_env SMB_PASS
+ local var=SMB_PASS
+ local fileVar=SMB_PASS_FILE
+ local def=
+ '[' '' ']'
+ local val=
+ '[' '' ']'
+ '[' '' ']'
+ export SMB_PASS=
+ SMB_PASS=
+ unset SMB_PASS_FILE
+ file_env TMP_PATH /tmp
+ local var=TMP_PATH
+ local fileVar=TMP_PATH_FILE
+ local def=/tmp
+ '[' '' ']'
+ local val=/tmp
+ '[' '' ']'
+ '[' '' ']'
+ export TMP_PATH=/tmp
+ TMP_PATH=/tmp
+ unset TMP_PATH_FILE
+ file_env COMPRESSION gzip
+ local var=COMPRESSION
+ local fileVar=COMPRESSION_FILE
+ local def=gzip
+ '[' '' ']'
+ local val=gzip
+ '[' '' ']'
+ '[' '' ']'
+ export COMPRESSION=gzip
+ COMPRESSION=gzip
+ unset COMPRESSION_FILE
+ [[ -n true ]]
+ set -x
+ MYSQLDUMP_OPTS=
+ '[' -n root ']'
+ DBUSER=-uroot
+ '[' -n 'mypassword' ']'
+ DBPASS='-pmypassword'
+ '[' -z internalip ']'
+ '[' -z 3306 ']'
+ COMPRESS=
+ UNCOMPRESS=
+ case $COMPRESSION in
+ COMPRESS=gzip
+ UNCOMPRESS=gunzip
+ EXTENSION=tgz
+ TMPDIR=/tmp/backups
+ TMPRESTORE=/tmp/restorefile
+ declare -A uri
+ [[ -n /backup/db_backup_2023-01-23T23:30:01Z.tgz ]]
+ '[' -d /scripts.d/pre-restore/ ']'
+ uri_parser /backup/db_backup_2023-01-23T23:30:01Z.tgz
+ uri=()
+ full=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ full=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ full=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ [[ / == \/ ]]
+ full=file://localhost/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ [[ file://l == \f\i\l\e\:\/\/\/ ]]
+ pattern='^(([a-z0-9]{2,5})://)?((([^:\/]+)(:([^@\/]*))?@)?([^:\/?]+)(:([0-9]+))?)(\/[^?]*)?(\?[^#]*)?(#.*)?$'
+ [[ file://localhost/backup/db_backup_2023-01-23T23:30:01Z.tgz =~ ^(([a-z0-9]{2,5})://)?((([^:\/]+)(:([^@\/]*))?@)?([^:\/?]+)(:([0-9]+))?)(\/[^?]*)?(\?[^#]*)?(#.*)?$ ]]
+ full=file://localhost/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ uri[uri]=file://localhost/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ uri[schema]=file
+ uri[address]=localhost
+ uri[user]=
+ uri[password]=
+ uri[host]=localhost
+ uri[port]=
+ uri[path]=/backup/db_backup_2023-01-23T23:30:01Z.tgz
+ uri[query]=
+ uri[fragment]=
+ [[ file == \s\m\b ]]
+ [[ -n '' ]]
+ return 0
+ [[ file == \f\i\l\e ]]
+ cp /backup/db_backup_2023-01-23T23:30:01Z.tgz /tmp/restorefile
+ [[ -f /tmp/restorefile ]]
+ '[' '' = true ']'
+ DBDATABASE=
+ workdir=/tmp/restore.1
+ rm -rf /tmp/restore.1
+ mkdir -p /tmp/restore.1
+ gunzip
+ tar -C /tmp/restore.1 -xvf -
./
./backup_2023-01-23T23:30:01Z.sql
+ cat /tmp/restore.1/backup_2023-01-23T23:30:01Z.sql
+ mysql -h internalip -P 3306 -uroot '-pmypassword'
ERROR 1046 (3D000) at line 22: No database selected
+ rm -rf /tmp/restore.1
+ /bin/rm -f /tmp/restorefile
+ '[' -d /scripts.d/post-restore/ ']'
My docker run command:
docker run \
-e DB_SERVER=internalip \
-e DB_PORT=3306 \
-e DB_USER=root \
-e DB_PASS=$VAULTWARDEN_PASS \
-e DB_NAMES=vaultwarden \
-e DB_DUMP_DEBUG=true \
-e SINGLE_DATABASES=true \
-e DB_RESTORE_TARGET=/backup/db_backup_2023-01-23T23:30:01Z.tgz \
-v vaultwarden/backup:/backup \
databack/mysql-backup
Was this dumped from all databases? Or a single one? Can you post some of the contents of the backup file without any sensitive data?
It was dumped from a single database. And I don't think I can post any contents of the backup file, as it is primarily sensitive data. (Literally, my password manager) I ultimately recovered my database by manually opening the backup files, extracting the tar files and manually importing the database with the SQL CLI.
What exactly did you do to import manually?
The .sql
file that was in the tgz
file.
Did you run it through cat dump.sql | mysql ...
? Did you select a database to use before restoring? And what version of mysql is the backend for vaultwarden here?
If you dump all databases, the restore file can just be passed to mysql
; if it is just one database, you might get information that doesn't indicate the database to use in the .sql
dump file, so you would need to USE <database>
before restoring.
That is why I was asking what is in the .sql
file.
I am trying to restore using docker-compose file. docker-compose:- restore: image: databack/mysql-backup restart: always volumes:
It gives ERROR 1046 (3D000) at line 22: No database selected. Also, I have tried with this code - DB_NAMES=db. but I got the same error.