Drop all tables in MySQL via SSH

create a new file called 'drop_all_tables.sh'

vi drop_all_tables.sh

and paste the following into it and save...

#!/bin/bash
MUSER="$1"
MPASS="$2"
MDB="$3"
 
# Detect paths
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)
 
if [ $# -ne 3 ]
then
        echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name}"
        echo "Drops all tables from a MySQL"
        exit 1
fi
 
TABLES=$($MYSQL -u $MUSER -p$MPASS $MDB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )
 
for t in $TABLES
do
        echo "Deleting $t table from $MDB database..."
        $MYSQL -u $MUSER -p$MPASS $MDB -e "SET FOREIGN_KEY_CHECKS = 0;drop table $t;SET FOREIGN_KEY_CHECKS = 1;"
done

then do

./drop_all_tables.sh USER PASS DATABASENAME

Thanks goes to the original author of this script (without the FOREIGN_KEY_CHECKS) located here.

Tags: how-to mysql