Skip to content

Instantly share code, notes, and snippets.

@atishgoswami
Created August 22, 2017 06:59
Show Gist options
  • Save atishgoswami/c80a392040ddf0d583dd3f77816dee6d to your computer and use it in GitHub Desktop.
Save atishgoswami/c80a392040ddf0d583dd3f77816dee6d to your computer and use it in GitHub Desktop.
MySQL Dump exclude Tables
#!/bin/bash
PASSWORD=XXXXXX
HOST=XXXXXX
USER=XXXXXX
DATABASE=databasename
DB_FILE=dump.sql
EXCLUDED_TABLES=(
table1
table2
table3
table4
tableN
)
IGNORED_TABLES_STRING=''
for TABLE in "${EXCLUDED_TABLES[@]}"
do :
IGNORED_TABLES_STRING+=" --ignore-table=${DATABASE}.${TABLE}"
done
echo "Dump structure"
mysqldump --host=${HOST} --user=${USER} --password=${PASSWORD} --single-transaction --no-data ${DATABASE} > ${DB_FILE}
echo "Dump content"
mysqldump --host=${HOST} --user=${USER} --password=${PASSWORD} ${DATABASE} --routines --triggers --no-create-info ${IGNORED_TABLES_STRING} >> ${DB_FILE}
echo "Cleaning Up DEFINERs"
sed -i -E 's/DEFINER=`[^`]+`@`[^`]+`/DEFINER=CURRENT_USER/g' ${DB_FILE}
echo "Compressing Dump File"
gzip ${DB_FILE}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment