您的位置:首页 > 数据库 > MySQL

超实用--删除MYSQL中指定的数据的全部表

2014-08-28 17:37 253 查看
作过的人都知道,重复测试数据库的苦恼。

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

~~~~~~~~~~~~~

#!/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 - 用户名或密码无效,无法连接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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: