Restore Rows From a Backup¶
Prepare¶
Locate and prepare your backup - e.g: decrypt / decompress / etc...
Load the Backup¶
Load the backup into a docker container:
docker run \
-it \
--rm \
--name db-restore \
-v "$(readlink -f my-db-backup.sql):/docker-entrypoint-initdb.d/my-db-backup.sql:ro" \
-e MYSQL_RANDOM_ROOT_PASSWORD=true \
mysql/mysql-server:latest
The container will create a password for the root
account - keep it handy.
Once it gets to a steady state, use ^P ^Q to detach and leave it running.
Inspect the Backup¶
Inspect your backup using the MySQL CLI:
docker exec -it db-restore mysql -u root -p
Dump the Rows¶
Extract the rows in a way that allows you to paste them into a MySQL CLI:
docker exec \
-it \
db-restore \
mysqldump \
-u root \
-p \
--no-create-db \
--no-create-info \
"${DATABASE}" \
"${TABLE}" \
--where="${CONDITION}"
Tidy Up¶
Shutdown the container
docker rm -f db-restore