Как уронить MySQL
От: denaturat  
Дата: 10.06.08 05:03
Оценка:
Windows XP SP 2,
MySQL 5.0.16

Открываем MySQL command line client и вставляем:

mysql> CREATE TRIGGER mytrigger AFTER INSERT
    ->     ON `mydb`.`mytable` FOR EACH ROW
    -> BEGIN END;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>


Служба MySQL отваливается.

Причина: надо указывать имя триггера в виде `mydb`.`mytrigger`, а не просто mytrigger.

Интересно, кто-нибудь пытался сделать такое при развертывании web-приложения (или проведении SQL-инъекции)?
Re: Как уронить MySQL
От: Roman Odaisky Украина  
Дата: 10.06.08 08:21
Оценка:
Здравствуйте, denaturat, Вы писали:

D>Открываем MySQL command line client и вставляем:


mysql> CREATE TRIGGER mytrigger AFTER INSERT ON `mydb`.`mytable` FOR EACH ROW BEGIN END;
ERROR 1146 (42S02): Table 'mydb.mytable' doesn't exist
mysql> create database mydb;
Query OK, 1 row affected (0.14 sec)

mysql> CREATE TRIGGER mytrigger AFTER INSERT ON `mydb`.`mytable` FOR EACH ROW BEGIN END;
ERROR 1146 (42S02): Table 'mydb.mytable' doesn't exist
mysql> use mydb;
Database changed
mysql> create table mytable (_ int);
Query OK, 0 rows affected (0.11 sec)

mysql> CREATE TRIGGER mytrigger AFTER INSERT ON `mydb`.`mytable` FOR EACH ROW BEGIN END;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@version;
+------------------------------+
| @@version                    |
+------------------------------+
| 5.0.45-Debian_1ubuntu3.1-log |
+------------------------------+

На сервере с 5.0.51a-6 (Debian Lenny) тоже всё в порядке.
До последнего не верил в пирамиду Лебедева.
Re[2]: Как уронить MySQL
От: denaturat  
Дата: 11.06.08 06:58
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, denaturat, Вы писали:

RO>| 5.0.45-Debian_1ubuntu3.1-log |
RO>На сервере с 5.0.51a-6 (Debian Lenny) тоже всё в порядке.

Видимо, исправили.
на 5.0.27-community-nt кричит про Wrong schema, и не отваливается.
Re: Как уронить MySQL
От: Nonmanual Worker  
Дата: 16.06.08 12:36
Оценка:
Здравствуйте, denaturat, Вы писали:

D>Windows XP SP 2,

D>MySQL 5.0.16

D>Открываем MySQL command line client и вставляем:


D>
mysql>> CREATE TRIGGER mytrigger AFTER INSERT
    ->>     ON `mydb`.`mytable` FOR EACH ROW
    ->> BEGIN END;
D>ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>>
D>


D>Служба MySQL отваливается.


D>Причина: надо указывать имя триггера в виде `mydb`.`mytrigger`, а не просто mytrigger.


А что вы хотите? MySQL ужасно кривой, за исключением некоторых версий. Особенно он кривой для платформы Windows.
Помню версия для винды пару месяцев висела у них на сайте, которая при попытке выполнить ЛЮБОЙ sql statement падала.
Почитайте bugs на их сайте, там и не такое есть.

D>Интересно, кто-нибудь пытался сделать такое при развертывании web-приложения (или проведении SQL-инъекции)?


Кстати MySQL под Виндой — это нонсенс. К тому-же для работы используются хорошо вылежанные, довольно стабильные версии.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.