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

发布时间:2020-12-28编辑:脚本学堂
分享一个shell脚本,用于删除mysql中的所有表,有需要的朋友参考下。

分享一个可以删除mysql中所有表的shell/ target=_blank class=infotextkey>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)
linuxjishu/13830.html target=_blank class=infotextkey>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 - 用户名或密码无效,无法连接mysql数据库"
 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