Shell MySql Tool

来源:互联网 发布:思迅足浴软件 编辑:程序博客网 时间:2024/06/01 07:32
#!/bin/bash## Version 0.02 - JF Nutbroek 2007# # Path to MySQL binaryMYSQL="/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