Skip to content

Instantly share code, notes, and snippets.

@schaary
Last active May 14, 2019 08:45
Show Gist options
  • Save schaary/b340b62151f9032691d6e2f98e178d09 to your computer and use it in GitHub Desktop.
Save schaary/b340b62151f9032691d6e2f98e178d09 to your computer and use it in GitHub Desktop.
create mysql dump
#!/usr/bin/env bash
# Dieses Script schreibt einen Dump der Datenbank, die als erstes Argument
# übergeben wird.
# Die Dumps sind umfassend - d.h. sie kommen mit einem `create database` und
# vollständingen `create table` Statements, damit man ein Backup von allen
# Einstellungen bzgl. Collation und Character Set hat.
if [ -z ${1} ]
then
echo "Fehler: Der Name der Datenbank, die zu dumpen ist, wurde nicht angegeben!"
echo ""
echo "usage: create_mysql_dump [DATABASE]"
exit 1
fi
MYSQLDUMP=$(which mysqldump)
TIMESTAMP=$(date '+%Y%m%d%H%M%S')
DUMPFILE="dump_${1}_${TIMESTAMP}.sql"
# Für den Export werden folgende Optionen genutzt:
#
# --user -> Loginname des Nutzers, der auf die Datenbank zugreift
# --password -> Passwort des Nutzers
# --extended-insert -> jeder Datensatz bekommt ein eigenes insert-Statement
# --single-transaction -> schreibt den Dump in einer Transaktion
# --create-options -> schreibt u.a. collation und character set für
# jede Tabelle in die `create table` Statements
# --databases -> schreibt ein `create database` Statement in den Dump,
# mit collation und character set der Datenbank
${MYSQLDUMP} \
--user=root \
--password=$MYSQL_URZ_MYSQL_ROOT_PASSWORD \
--extended-insert=false \
--single-transaction \
--create-options \
--databases \
${1} | iconv -f latin1 -t utf8 > ${DUMPFILE}
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment