databases() {
echo "SHOW DATABASES;" | mysql | egrep -v '^(Database|information_schema)$'
}
database?() {
[ -n "${1}" ] || return 1
databases | egrep -q "^${1}$" || return 2
return 0
}
tables() {
database? "${1}" || return 1
echo "SHOW TABLES;" | mysql "${1}" | egrep -v '^Tables_in_.*$'
}
table?() {
database? "${1}" || return 1
[ -n "${2}" ] || return 2
tables "${1}" | egrep -q "^${2}$" || return 3
return 0
}
repair_table() {
table? "${1}" "${2}" || return 1
echo "REPAIR TABLE \`${2}\`;" | mysql "${1}" | egrep -v "^Table"
}
optimize_table() {
table? "${1}" "${2}" || return 1
echo "OPTIMIZE TABLE \`${2}\`;" | mysql "${1}" | egrep -v "^Table"
}
optimize_database() {
database? "${1}" || return 1
tables "${1}" | while read table
do
optimize_table "${1}" "${table}"
done
}
optimize_all() {
databases | while read database
do
optimize_database "${database}"
done
}
dump() {
table? "${1}" "${2}" || return 1
mysqldump "${1}" "${2}"
}