功能:删除目标MySQL数据库的所有表
使用步骤:
1、将脚本保存为 delete_mysql_tables.sh,并赋予执行权限:
chmod +x delete_mysql_tables.sh
2、执行脚本时,提供数据库名称作为参数:
./delete_mysql_tables.sh your_database_name
全部代码:
#!/bin/bash
# 定义常量
MYSQL_HOST="xxxxxx.mysql.rds.aliyuncs.com"
MYSQL_USER="test"
MYSQL_PASSWORD="123456"
MYSQL_CMD="mysql"
# 检查是否提供了数据库名称作为参数
if [ -z "$1" ]; then
echo "Usage: $0 <database_name>"
exit 1
fi
# 定义数据库名称变量
MYSQL_DB_NAME="$1"
# 函数:执行 MySQL 命令并捕获输出
execute_mysql_cmd() {
local cmd="$1"
$MYSQL_CMD -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -D "$MYSQL_DB_NAME" -e "$cmd"
}
# 函数:获取所有表的名称
get_tables() {
execute_mysql_cmd "SHOW TABLES;" | awk 'NR>1 {print $1}'
}
# 函数:删除表
delete_table() {
local table="$1"
echo "Deleting table: $table"
execute_mysql_cmd "DROP TABLE IF EXISTS $table;"
}
# 获取所有表的名称
tables=$(get_tables)
# 循环删除每个表
for table in $tables; do
delete_table "$table"
done
echo "All tables have been deleted from database: $MYSQL_DB_NAME"
|