Как удалить все SQL-таблицы с неким префисом?
#1
Отправлено 06 May 2012 - 05:59 PM
Есть какой-то способ удалить все таблицы с конкретным префиксом используя только SQL-синтаксис или по любому маленький PHP-файлик писать?
PS. Про PHPadmin (или как там его) не надо, нет его у меня. И, надеюсь, никогда не будет.
#2
Отправлено 06 May 2012 - 06:21 PM
пример для bash:
for table in `echo "show tables" | mysql -uUSER -hHOST -pPASWD DATABASE | egrep -v '(Database|information_schema)' | egrep "REGEXP"`; do echo "DROP TABLE $table" | mysql -uUSER -hHOST -pPASWD uDATABASE; done
#3
Отправлено 06 May 2012 - 08:34 PM
Ну, я примерно так и предполагал, что это будет самый простой путь .либо php
#!/usr/bin/php
<?php
require_once "core/config/connect.inc.php";
require_once "core/includes/database/".DBMS.".php";
$prefix = array('1qaz_','shop_','shop1_','shop2_','shop4_','lwiv_');
db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());
db_select_db(DB_NAME) or die (db_error());
foreach ($prefix as $pref)
{
$data = mysql_query("SHOW TABLES LIKE '".str_replace('_','\_',$pref)."%'") or die(mysql_error());
while ($row = mysql_fetch_row($data))
{
echo $row[0]."\n";
mysql_query("DROP TABLE ".$row[0]);
}
}
db_disconnect();
?>
#4
Отправлено 07 May 2012 - 06:31 AM
очень полезная вещь
vsupport.club --Лучшее решение всех проблем
#5
Отправлено 07 May 2012 - 11:48 AM
Да я нисколько не сомневаюсь в его полезности. Более того, где-то на конторских серверах он даже установлен. Но за год было буквально две-три задачи, где phpmyadmin имел явно преимущество перед консолью. А вот попытки влезть через phpmyadmin я наблюдаю в логах чуть ли не ежедневно. Учитывая известность продукта как "дыра на дыре" (даже при инсталляции написано что-то в стиле "безопасность - Ваша забота, а не наша") и то, что я не считаю себя специалистом по безопасности - я его не ставлю.зря вы так про phpmyadmin очень полезная вещь
#6
Отправлено 07 May 2012 - 11:57 AM
Да я нисколько не сомневаюсь в его полезности. Более того, где-то на конторских серверах он даже установлен. Но за год было буквально две-три задачи, где phpmyadmin имел явно преимущество перед консолью. А вот попытки влезть через phpmyadmin я наблюдаю в логах чуть ли не ежедневно. Учитывая известность продукта как "дыра на дыре" (даже при инсталляции написано что-то в стиле "безопасность - Ваша забота, а не наша") и то, что я не считаю себя специалистом по безопасности - я его не ставлю.
Ну вопервых никто не мешает тебе его установить (установка заключается только в заливании файлов, т.е. никакая специфическая инсталляция не требуется) выполнить необходимые действия (тем самым ты увидишь команды(запросы) которые тебе нужны для пхп.) а после удалить.
Что же касается безопастности, то как-то не особо наслышан что там дыры, учитывая что он установлен на ВСЕХ хостингах....... без знания логина и пароля от БД туда не зайдешь.
phpMyAdmin выиграл несколько призов. Среди прочих, он был выбран как лучшая программа на PHP, и каждый год получает приз сообщества SourceForge.net, как лучшая программа для системных аднимистраторов.
Но если ты не доверяешь самому скрипту переименуй директорию например в fakldjf65_4af654sdf654 и поставь пароль на директорию. и никто твою базу не потревожит и тебе будет комфортно.
Сам скрипт выложил в Архиве.
#7
Отправлено 07 May 2012 - 02:27 PM
Вот те здрасьте.... Если бы я эти команды не знал, то мне не было бы комфортно в обычной mysql-консоли, логично? .Ну вопервых никто не мешает тебе его установить (установка заключается только в заливании файлов, т.е. никакая специфическая инсталляция не требуется) выполнить необходимые действия (тем самым ты увидишь команды(запросы) которые тебе нужны для пхп.) а после удалить.
Вопрос был в основном на тему "вдруг я все таки что-то не знаю и набор SQL-команд позволяет таки удалять таблицы по маске".
Выяснилось (спасибо eugene_wb), что не по маске, но таки можно используя LOOP и создание процедуры. Но это уже ничем не отличается от создания процедуры на PHP, а на PHP таки проще, т.к. худо-бедно изучено.
Вот только на хостингах обычно безопасностью занимаются люди, которые в этом (предположительно) хорошо разбираются, а не увидели линукс чуть больше года назад. Возможно, что-то изменилось в phpmyadmin, но примерно с год назад, когда я его ставил он честно предупреждал, что вопросы безопасности не его забота, а моя. В принципе, это правильно. Но при этом давал по умолчанию свободный доступ на исполнение и/или скачивание (не помню уже) каких-то своих файлов, для которых это категорически не стоило делать. У себя я это решал путем установки phpadmin-а на другой порт и запрещая доступ к этому порту со всех IP-адресов кроме своих, но - не специалист! - вовсе не уверен, что перекрыл все лазейки.Что же касается безопастности, то как-то не особо наслышан что там дыры, учитывая что он установлен на ВСЕХ хостингах
Так что пока необходимость в этом инструменте возникает раз в пол-года - я обойдусь без него. Все остальное я, скорее всего, банально быстрее сделаю в консоли. У меня до сих пор есть сервера на NT 4.0 (один уже остался, но есть и его достаточно в том месте) и я напрочь не понимаю, когда на нечто новое переходят не по собственной небоходимости, а исходя из мнения других людей или даже потому, что этот продукт "лучший выбор года".
#8
Отправлено 07 May 2012 - 02:44 PM
Вот те здрасьте.... Если бы я эти команды не знал, то мне не было бы комфортно в обычной mysql-консоли, логично?
Ну судя по тому, что ты не так давно спрашивал каким запросом создать поле в существующей таблице....... (чтобы не гуглить)................ ))
#9
Отправлено 07 May 2012 - 02:46 PM
минусов писать не буду, просто опишу плюсы:
-- реализация практически всех действий одной кнопкой (действительно удобно и быстро)
-- возможность просматривать наличие полей и т.д. при составлении запросов
-- дамп базы через web в один клик
-- делать что то визуально, а на выходе уже получить готовый запрос
как безопасноть, у меня стоит доступ к phpmyadmin только через vpn и на отдельном vhost
P.S. это действительно удобно, стоит просто попробывать
некоторые еще используют http://www.chive-project.com, как бы аналог phpmyadmin
#10
Отправлено 07 May 2012 - 03:15 PM
Ну так не нужен был никогда этот запрос - я и не знал. Понадобился - узнал. Это куда быстрее, чем возиться с phpadmin. Нет?Ну судя по тому, что ты не так давно спрашивал каким запросом создать поле в существующей таблице.
#11
Отправлено 07 May 2012 - 04:06 PM
нет не быстрее ))) ведь ты задал вопрос - я зашел в первый попавшийся пхпмайадмин и скопировал тебе ответ ))))))Ну так не нужен был никогда этот запрос - я и не знал. Понадобился - узнал. Это куда быстрее, чем возиться с phpadmin. Нет?
Не ну я не уговариваю тебя его использовать, пожалуйста если тебе удобнее спрашивай на форуме, я никапельки не возражаю, если буду в сети обязательно скопирую снова.
Просто хочу объяснить что ничего страшного в нем нет )) а наоборот довольно удобный скрипт как для новичков так и для профи.
#12
Отправлено 07 May 2012 - 05:27 PM
Я все равно не поставлю себе PhpMyAdmin пока в нем не будет реальной настоятельной надобности как в инструменте.
Ну а как будет настоятельная надобность, так поставлю сразу и не раздумывая.
Как, например, произошло с нормальными браузерами вместо IE.
Пока надобности нет.