天天看点

删除mysql数据库中所有表的shell脚本

删除mysql数据库中所有表的shell脚本

删除mysql数据库中所有表的shell脚本

#!/bin/bash

# 删除 mysql 中所有表

# 示例:

# Usage: ./script user password dbnane

# Usage: ./script user password dbnane server-ip

# Usage: ./script user password dbnane mysql.nixcraft.in

# ---------------------------------------------------

MUSER="$1"

MPASS="$2"

MDB="$3"

MHOST="localhost"

[ "$4" != "" ] && MHOST="$4"

# 设置命令路径

MYSQL=$(which mysql)

AWK=$(which  awk )

GREP=$(which grep)

# help

if [ ! $# -ge 3 ]

then

 echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name} [host-name]"

 echo "Drops all tables from a MySQL"

 exit 1

fi

# 连接 mysql数据库

$MYSQL -u $MUSER -p$MPASS -h $MHOST -e "use $MDB"  &>/dev/null

if [ $? -ne 0 ]

then

 echo "Error - 用户名或密码无效,无法连接my sql数据库 "

 exit 2

fi

TABLES=$($MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )

# make sure tables exits

if [ "$TABLES" == "" ]

then

 echo "Error - 在 数据库 中 $MDB 未发现相关表"

 exit 3

fi

# let us do it

for t in $TABLES

do

 echo "Deleting $t table from $MDB database..."

 $MYSQL -u $MUSER -p$MPASS -h $MHOST $MDB -e "drop table $t"

done