База знаний по Open Source
Авторизация
Поиск по базе знаний

Честно говоря, вопросы типа “как из консоли, одной командой удалить все таблицы из базы MySQL” иногда ставят в тупик: а зачем? Специальной команды или программы в пакете MySQL на этот случай нет, так как она бессмысленна: можно прекрасно выполнить две команды:

$ mysql -u[username] -p[password] -e "drop database [database]"

и

$ mysql -u[username] -p[password] -e "create database [database]"

База удалится и создастся с пользователем user. (Этот пример не совсем корректен – сразу же получите предупреждение

Warning: Using a password on the command line interface can be insecure.

И это правильно – не стоит использовать пароли в командной строке: они остаются в буфере).

Особо ленивым и часто использующим эту конструкцию можно быстренько написать скриптик, объединяющий эти две команды и запрашивающий пароль.

Впрочем на просторах интернета гуляют еще два варианта решения этой задачи:

mysql --silent --skip-column-names -u[USERNAME] -p[PASSWORD] [DATABASE] -e "show tables" | gawk '{print "drop table " $1 ";"}' | mysql -u [USERNAME] -p[PASSWORD] [DATABASE]

и

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

Чем они лучше – не представляю, на любителя. Но букв точно набирать больше.