В общем случае удалить таблицы из базы данных можно командой в консоли mysql:
mysql> use databasename;
mysql> drop table00 table01, table02;
Если у вас таблиц десятки и сотни, очевидно, что вручную их указывать неудобно. Дальше каждый изобретает свой велосипед в виде различных скриптов на php или bash. Мне не захотелось этим заниматься, уверен был, что можно найти способ проще и я его нашел.
Можно воспользоваться mysqldump и некоторыми ключами.
# mysqldump --add-drop-table --no-data databasename
Эта команда сделает дамп только структуры базы данных, при этом для каждой таблицы перед ее созданием будет команда на удаление. Вот эти команды на удаление мы и заберем из дампа.
# mysqldump --add-drop-table --no-data databasename | grep ^DROP
Мы получили набор команд на удаление всех таблиц. Теперь направим эти команды в mysql консоль на исполнение.
# mysqldump --add-drop-table --no-data databasename | grep ^DROP | mysql databasename
У меня настроена авторизация в mysql из консоли без пароля. В общем случае, с паролем команда будет выглядеть вот так:
# mysqldump -uuser -ppassword --add-drop-table --no-data databasename | grep ^DROP | mysql -uuser -ppassword databasename
Таким простым способом, без скриптов, можно прямо в консоли сервера удалить все таблицы из базы данных mysql, не удаляя саму базу.
mysql> use databasename;
mysql> drop table00 table01, table02;
Если у вас таблиц десятки и сотни, очевидно, что вручную их указывать неудобно. Дальше каждый изобретает свой велосипед в виде различных скриптов на php или bash. Мне не захотелось этим заниматься, уверен был, что можно найти способ проще и я его нашел.
Можно воспользоваться mysqldump и некоторыми ключами.
# mysqldump --add-drop-table --no-data databasename
Эта команда сделает дамп только структуры базы данных, при этом для каждой таблицы перед ее созданием будет команда на удаление. Вот эти команды на удаление мы и заберем из дампа.
# mysqldump --add-drop-table --no-data databasename | grep ^DROP
Мы получили набор команд на удаление всех таблиц. Теперь направим эти команды в mysql консоль на исполнение.
# mysqldump --add-drop-table --no-data databasename | grep ^DROP | mysql databasename
У меня настроена авторизация в mysql из консоли без пароля. В общем случае, с паролем команда будет выглядеть вот так:
# mysqldump -uuser -ppassword --add-drop-table --no-data databasename | grep ^DROP | mysql -uuser -ppassword databasename
Таким простым способом, без скриптов, можно прямо в консоли сервера удалить все таблицы из базы данных mysql, не удаляя саму базу.