- #!/bin/bash
- #
- # Version 0.02 - JF Nutbroek 2007
- #
- # Path to MySQL binary
- MYSQL="/opt/lampp/bin/mysql"
- # Code starts here
- check() {
- OUT=$?
- if [ ! $OUT -eq 0 ]; then
- echo "Error!"
- exit 2
- fi
- }
- getinfo() {
- echo "##### WARNING - Expert only! #####"
- echo ""
- echo "Please enter your MySQL username [enter=root]"
- read USERNAME
- if [ "$USERNAME" = "" ]; then
- USERNAME="root"
- fi
- echo "Please enter your MySQL password"
- stty -echo
- read PASSWORD
- stty echo
- echo ""
- DBNAMES="`$MYSQL --user=$USERNAME --password=$PASSWORD --host=localhost --batch --skip-column-names -e "show databases" | sed 's/ /%/g'`"
- PS3='Please select the database:'
- select DB in $DBNAMES ; do
- break
- done
- echo ""
- }
- optimize() {
- clear
- echo "Optimizing database..."
- echo ""
- getinfo
- TABLENAMES="`$MYSQL --user=$USERNAME --password=$PASSWORD --host=localhost -D $DB -e "show tables\\G;" | grep 'Tables_in_' | sed -n 's/.*Tables_in_.*: \\([_0-9A-Za-z]*\\).*/\\1/p'`"
- for TABLENAME in $TABLENAMES
- do
- $MYSQL --user=$USERNAME --password=$PASSWORD --host=localhost -s -D $DB -e "optimize table $TABLENAME;"
- done
- echo ""
- echo "Completed"
- }
- repair() {
- clear
- echo "Repairing database..."
- echo ""
- getinfo
- TABLENAMES="`$MYSQL --user=$USERNAME --password=$PASSWORD --host=localhost -D $DB -e "show tables\\G;" | grep 'Tables_in_' | sed -n 's/.*Tables_in_.*: \\([_0-9A-Za-z]*\\).*/\\1/p'`"
- for TABLENAME in $TABLENAMES
- do
- $MYSQL --user=$USERNAME --password=$PASSWORD --host=localhost -s -D $DB -e "repair table $TABLENAME;"
- done
- echo ""
- echo "Completed"
- }
- case "$1" in
- 'optimize')
- setterm -background blue
- clear
- optimize
- setterm -background black
- ;;
- 'repair')
- setterm -background blue
- clear
- repair
- setterm -background black
- ;;
- *)
- echo "Usage: mysqltool optimize | repair"
- esac
- exit 0
- #该片段来自于http://www.codesnippet.cn/detail/220120131826.html
来源: http://www.codesnippet.cn/detail/220120131826.html