在测试阿里云RDS(mysql)的时候,需要删除数据库,简单的使用drop database xxx后,RDS欢快的拒绝了我
mysql> drop database xxxx;
ERROR 1725 (HY000): OPERATION need to be executed set by ADMIN.
登录到云后台,RDS管理,删除数据库,好吧确实可以删,但是每次删除都要管理员手机的验证码,作为一个程序猿,是不喜欢每次这么去问验证码的,试了下删除单张表,是可以的,于是想到把所有表删除,效果是一样的,几十张表,也不能手工删除,借助shell,批量删除
# TABLES=$(mysql -uxxx -pxxx -hrds_domain -BNe db_name 'show tables' | awk '{ print $1}')
#for t in $TABLES
>do
>mysql -uxxxr -pxxx -hrds_domain db_name -e "drop table $t"
>echo drop table $t
>done
当然也可以把table name连接起来后用一个语句批量删除,但是mysql -e对执行的sql长度有限制,表不多的情况下没问题,表太多语句会被截断,导致执行失败。