Как очистить все таблицы базы данных

В этой статье мы покажем способы очистки и удаления таблиц базы данных MySQL. Это актуально в том случае, если у вас отсутствуют права доступа к базе данных для ее создания и удаления. Также на тот случай, если времени мало и нет времени искать и запоминать параметры базы, чтобы затем пересоздать её.

Способ 1. Умный

Возможно, самый лучший способ удалить или очистить таблицы БД. Для реализации запустите одну из команд в консоле сервера.

// для очистки всех таблиц от данных
mysql -Nse 'show tables' DB_NAME | while read table; do mysql -e "truncate table $table" DB_NAME; done
// для удаления всех таблиц
mysql -Nse 'show tables' DB_NAME | while read table; do mysql -e "drop table $table" DB_NAME; done

Пример запуска команды в консоле:

Способ 2. Хитрый

Еще один хитрый способ для запуска в консоле сервера

// для очистки таблиц от данных
mysqldump -uUSERNAME -pPASSWORD --add-drop-table --no-data DB_NAME | grep ^DROP | sed -e 's/DROP TABLE IF EXISTS/TRUNCATE TABLE/g' | mysql -uUSERNAME -pPASSWORD DB_NAME
// для удаления таблиц БД
mysqldump -uLOGIN -pPASSWORD --add-drop-table --no-data DB_NAME | grep ^DROP | mysql -uLOGIN -pPASSWORD DB_NAME

Если пароль или логин содержит спецсимволы, то обрамите их в одинарные кавычки.Пример запуска команды в консоле:

Способ 3. Пыховатый

Простой способ, который требует только наличия доступов в базу данных. Всего и нужно создать php-скрипт где-нибудь в публичке сайта и запустить его.

<?
$dbUser = 'userwm';
$dbPass = 'test';
$dbName = 'vw-test';
$countTables = 0;
$mySqlConnetion = mysqli_connect("localhost", $dbPass, $dbUser);
mysqli_select_db($mySqlConnetion, $dbName);
$query = "SHOW TABLES";
$result = mysqli_query($mySqlConnetion, $query);
while ($table = mysqli_fetch_array($result))
{
// замените DROP TABLE на TRUNCATE TABLE – если таблицы не нужно удалять
$query = "DROP TABLE `" . current($table) . "`";
echo 'Drop table ' . $query . '<br>';
mysqli_query($mySqlConnetion, $query);
$countTables++;
}
echo '<br>Count: ' . $countTables;

Если вам необходимо очистить таблицы от записей, а не удалять их полностью – замените в коде DROP TABLE на TRUNCATE TABLE После запуска вы увидите какие таблицы были очищены и их количество.

Не забудьте удалить скрипт с сайта, после процедуры очистки

На моей практике перечисленные способы были актуальны при переносе интернет-магазина с тестовой среды на рабочую и в некоторых случаях восстановления сайта. Тогда мне нужно быстро почистить таблицы от лишних данных и развернуть резервную копию сайта.