Restore database from S3 storage

To restore the database, you need to add restore command and specify the file to restore by adding --file store_20231219_022941.sql.gz.

It supports .sql and .sql.gz compressed file.

Restore

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: 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:

Restore on Kubernetes

Simple Kubernetes restore Job:

apiVersion: batch/v1
kind: Job
metadata:
  name: restore-db
spec:
  template:
    spec:
      containers:
        - name: mysql-bkup
          image: jkaninda/mysql-bkup
          command:
            - /bin/sh
            - -c
            - 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