Очистка бд mysql от всех таблиц одной командой через терминал

Для того чтобы удалить все таблицы в бд через терминал одной командой, в своё время набросал короткий велосипедик с циклом

mysql -Nse 'show tables' DATABASE_NAME | while read table; do mysql DATABASE_NAME -e "drop table \`$table\`"; done

закинул его в свою склерозную копилочку, кстати рекомендую там покопаться, там много полезного:

Список полезных команд в Linux

 

Но этот способ скорее будет не очень удобен при удалённом выполнении команды по ssh(фик его как интерпретируется тогда переменная $table), не будем проверять.

Более здоровый вариант выглядит так:

mysqldump -uuser -ppassword --add-drop-table --no-data databasename | grep ^DROP | mysql -uuser -ppassword databasename

Делаем дамп базы без данных с добавлением drop команд для таблиц, поток grep-аем и перенаправляем эти команды и исполняем. Крутяк! Рекомендую запускать всем, всегда и везде! Особенно на больших дорогих проектах, предварительно удалив все бекапы.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *