/sql-backup

Backup your MySQL/MariaDB server ( structure, data, users, grants, views, triggers, routines, events )

Primary LanguageShellThe UnlicenseUnlicense

sql-backup - Backup your MySQL / MariaDB server !

Codacy Badge Actions Status codecov License: Unlicense FOSSA Status CII Best Practices Backup your MySQL / MariaDB server ( structure, data, users, grants, views, triggers, routines, events )

Install

Clone the repository

git clone https://github.com/williamdes/sql-backup.git --depth 1

Move into the directory

cd sql-backup

Copy the configuration example

cp .env-example .env

Edit your configuration file

Nano

nano .env

Vi

vi .env

Start backup

Execute this command to start the backup !

./backup.sh

Extras

To use an external env file in a custom location, example :

export BACKUP_CONFIG_ENVFILE="/home/myuser/secretbackupconfig.env.txt"

./backup.sh

unset BACKUP_CONFIG_ENVFILE

You can use the variables of the env file in the ON_SUCCESS variable, example :

ON_SUCCESS="${BACKUP_DIR}/onsuccessscript.sh"

Options

NAME DEFAULT VALUE OPTIONAL
BACKUP_DIR NO
MYSQL_HOST NO
MYSQL_USER NO
MYSQL_PASS YES
MYSQL_PORT 3306 YES
SKIP_DATABASES YES
EXPERT_ARGS --default-character-set=utf8 --extended-insert=FALSE --single-transaction --skip-comments --skip-dump-date --hex-blob --tz-utc YES
ON_SUCCESS YES
SKIP_OP YES

ON_SUCCESS is called on script success

Example .env

BACKUP_DIR=/sql_backup
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASS=root
MYSQL_PORT=3306
SKIP_DATABASES=mysql,sys,information_schema,performance_schema,phpmyadmin
SKIP_OP=users,grants

Files

NAME DESCRIPTION
database.sql All the data
structure.sql The structure of the databases and tables
grants.sql The grants for all users except root
events.sql The scheduled events
views.sql The views
triggers.sql The triggers
routines.sql All the procedures & functions
users.sql All MySQL users

License

FOSSA Status