patternsqlMajor
Any option for mysqldump to ignore databases for backup?
Viewed 0 times
ignoredatabasesanymysqldumpoptionforbackup
Problem
We have 40 databases in our server.
We want to take 36 databases backup using mysqldump. How can i ignore remaining 4 databases in mysqldump command? Is there any option for mysqldump to ignore databases for backup in MySQL?
I know the general mysqldump command but it is very lengthy. I want to ignore only 4 databases and need to take remaining dbs backup.
We want to take 36 databases backup using mysqldump. How can i ignore remaining 4 databases in mysqldump command? Is there any option for mysqldump to ignore databases for backup in MySQL?
I know the general mysqldump command but it is very lengthy. I want to ignore only 4 databases and need to take remaining dbs backup.
Solution
Use grep to exclude databases you don't want:
From looking at https://stackoverflow.com/questions/19354870/bash-command-line-and-input-limit it seems like you'll be able to handle long lines. Otherwise you can always
candidates=$(echo "show databases" | mysql | grep -Ev "^(Database|mysql|performance_schema|information_schema)$")
mysqldump --databases $candidatesFrom looking at https://stackoverflow.com/questions/19354870/bash-command-line-and-input-limit it seems like you'll be able to handle long lines. Otherwise you can always
candidates=$(echo "show databases" | mysql | grep -Ev "^(Database|mysql|performance_schema|information_schema)$")
for candidate in $candidates[*]; do
mysqldump $candidate
doneCode Snippets
candidates=$(echo "show databases" | mysql | grep -Ev "^(Database|mysql|performance_schema|information_schema)$")
mysqldump --databases $candidatescandidates=$(echo "show databases" | mysql | grep -Ev "^(Database|mysql|performance_schema|information_schema)$")
for candidate in $candidates[*]; do
mysqldump $candidate
doneContext
StackExchange Database Administrators Q#35081, answer score: 21
Revisions (0)
No revisions yet.