2024-08-03 16:03:17 +02:00
---
title: Restore database from AWS S3
layout: default
parent: How Tos
nav_order: 5
---
# Restore database from S3 storage
To restore the database, you need to add `restore` subcommand to `mysql-bkup` or `bkup` and specify the file to restore by adding `--file store_20231219_022941.sql.gz` .
{: .note }
It supports __ .sql__ and __ .sql.gz__ compressed file.
### Restore
```yml
services:
mysql-bkup:
# In production, it is advised to lock your image tag to a proper
# release version instead of using `latest` .
# Check https://github.com/jkaninda/mysql-bkup/releases
# for a list of available releases.
image: jkaninda/mysql-bkup
container_name: mysql-bkup
command:
- /bin/sh
- -c
- mysql-bkup restore --storage s3 -d my-database -f store_20231219_022941.sql.gz --path /my-custom-path
volumes:
- ./backup:/backup
environment:
- DB_PORT=3306
- DB_HOST=mysql
- DB_NAME=database
- DB_USERNAME=username
- DB_PASSWORD=password
## AWS configurations
- AWS_S3_ENDPOINT=https://s3.amazonaws.com
- AWS_S3_BUCKET_NAME=backup
- AWS_REGION="us-west-2"
- AWS_ACCESS_KEY=xxxx
- AWS_SECRET_KEY=xxxxx
## In case you are using S3 alternative such as Minio and your Minio instance is not secured, you change it to true
- AWS_DISABLE_SSL="false"
# mysql-bkup container must be connected to the same network with your database
networks:
- web
networks:
web:
2024-08-04 11:42:07 +02:00
```
## Restore on Kubernetes
2024-08-04 13:37:45 +02:00
Simple Kubernetes restore Job:
2024-08-04 11:42:07 +02:00
```yaml
apiVersion: batch/v1
2024-08-04 13:37:45 +02:00
kind: Job
2024-08-04 11:42:07 +02:00
metadata:
2024-08-04 13:37:45 +02:00
name: restore-db
2024-08-04 11:42:07 +02:00
spec:
2024-08-04 13:37:45 +02:00
template:
2024-08-04 11:42:07 +02:00
spec:
2024-08-04 13:37:45 +02:00
containers:
- name: mysql-bkup
image: jkaninda/mysql-bkup
command:
2024-08-04 11:42:07 +02:00
- /bin/sh
- -c
2024-08-04 13:37:45 +02:00
- bkup restore -s s3 --path /custom_path -f store_20231219_022941.sql.gz
env:
- name: DB_PORT
value: "3306"
- name: DB_HOST
value: ""
- name: DB_NAME
value: ""
- name: DB_USERNAME
value: ""
# Please use secret!
- name: DB_PASSWORD
value: ""
- name: AWS_S3_ENDPOINT
value: "https://s3.amazonaws.com"
- name: AWS_S3_BUCKET_NAME
value: "xxx"
- name: AWS_REGION
value: "us-west-2"
- name: AWS_ACCESS_KEY
value: "xxxx"
- name: AWS_SECRET_KEY
value: "xxxx"
- name: AWS_DISABLE_SSL
value: "false"
restartPolicy: Never
backoffLimit: 4
```