返回顶部

收藏

Shell MySql Tool

更多

[Shell/批处理]代码

#!/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

标签:MySQL

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. kn007 发表 2018-04-19 15:55:05 MySQL 8.0.11的更新之路
  2. HDR 发表 2018-04-17 06:57:17 利用ProxySQL实现MySQL的读写分离
  3. HH 发表 2018-04-15 16:38:22 DBA蹩脚编程能力-0008-实时查看表流量(视频)
  4. admin 发表 2018-04-15 14:29:22 MySQL高可用方案之–PXC vs MGR
  5. Nix.Huang 发表 2018-04-13 05:47:47 netty 线程模型
  6. HDR 发表 2018-04-12 02:33:59 Percona Xtrabackup快速备份MySQL[转]
  7. HDR 发表 2018-04-12 03:20:26 Xtrabackup备份和恢复MySQL
  8. 博主 发表 2018-04-11 09:17:23 MySQL智能调度系统
  9. wenming.gapo 发表 2018-04-11 15:40:31 云帮社区版4月升级,支持主流Go版本,修复了若干Bug
  10. Lok 发表 2018-04-10 07:19:08 php获取某个mysql数据库所有的存储过程
  11. Lok 发表 2018-04-09 08:46:51 关于一个mysql查询索引的对比
  12. shang 发表 2018-04-08 03:03:20 阿里云RDS导入数据库出现Access denied; you need (at least one

发表评论