BigBear
30.08.2012, 19:11
Не знал куда запостить, сюда наверно логичнее всего...
На статью не тянет, скорее заметка... Но тем не менее просто нужная информация...
Итак, если нам вдруг понадобится срочно перезагрузить MySQL, а прав на RELOAD нет, чтобы выполнить
FLUSH PRIVILEGES;
нам могут помочь следующие способы:
Способ №1:
Самый старый из найденных мной, но ни разу нигде не сработавших.
Тем не менее человек на этом (http://www.rsdn.ru/forum/db/2982591.all.aspx) форуме утверждает, что это возможно...
Тема 2008 года =)
Кратко: MySQL падает так как надо указывать имя триггера в виде `mydb`.`mytrigger`, а не просто mytrigger.
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>
OC = Windows XP SP 2
MySQL 5.0.16
Проверил работоспособность на Centos-6.3 2.6.34
Скрин приведён ниже.
http://s011.radikal.ru/i315/1208/3a/d66dd6cef6b0t.jpg (http://radikal.ru/F/s011.radikal.ru/i315/1208/3a/d66dd6cef6b0.png.html)
Результат - Способ не отработал.
Способ №2:
Заключается в эксплуатации бага #63775 (http://eromang.zataz.com/2012/04/10/oracle-mysql-innodb-bugs-13510739-and-63775-dos-demo/)
Кратко: MySQL падает при чтении заголовка, следующего за удалённой записью.
#
# Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD.
#
-- source include/have_innodb.inc
CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;
INSERT INTO bug13510739 VALUES (1), (2), (3), (4);
DELETE FROM bug13510739 WHERE c=2;
HANDLER bug13510739 OPEN;
HANDLER bug13510739 READ `primary` = (2);
# this one crashes the server IF the bug IS present
HANDLER bug13510739 READ `primary` NEXT;
DROP TABLE bug13510739;
На оффициальном сайте (http://dev.mysql.com/doc/refman/5.1/en/news-5-1-62.html) говорится, что пофиксено начиная с версии 5.1.62
Решил испытать на своей системе, где версия MySQL 5.1.61.
Скрины ниже.
http://s41.radikal.ru/i092/1208/b8/1419a00bd8d8t.jpg (http://radikal.ru/F/s41.radikal.ru/i092/1208/b8/1419a00bd8d8.png.html)
http://s005.radikal.ru/i210/1208/26/42e6b2eb6fddt.jpg (http://radikal.ru/F/s005.radikal.ru/i210/1208/26/42e6b2eb6fdd.png.html)
Зависимости:
MySQL 3
Результат - успешный перезапуск MySQL. PROFIT !!!
На статью не тянет, скорее заметка... Но тем не менее просто нужная информация...
Итак, если нам вдруг понадобится срочно перезагрузить MySQL, а прав на RELOAD нет, чтобы выполнить
FLUSH PRIVILEGES;
нам могут помочь следующие способы:
Способ №1:
Самый старый из найденных мной, но ни разу нигде не сработавших.
Тем не менее человек на этом (http://www.rsdn.ru/forum/db/2982591.all.aspx) форуме утверждает, что это возможно...
Тема 2008 года =)
Кратко: MySQL падает так как надо указывать имя триггера в виде `mydb`.`mytrigger`, а не просто mytrigger.
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>
OC = Windows XP SP 2
MySQL 5.0.16
Проверил работоспособность на Centos-6.3 2.6.34
Скрин приведён ниже.
http://s011.radikal.ru/i315/1208/3a/d66dd6cef6b0t.jpg (http://radikal.ru/F/s011.radikal.ru/i315/1208/3a/d66dd6cef6b0.png.html)
Результат - Способ не отработал.
Способ №2:
Заключается в эксплуатации бага #63775 (http://eromang.zataz.com/2012/04/10/oracle-mysql-innodb-bugs-13510739-and-63775-dos-demo/)
Кратко: MySQL падает при чтении заголовка, следующего за удалённой записью.
#
# Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD.
#
-- source include/have_innodb.inc
CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;
INSERT INTO bug13510739 VALUES (1), (2), (3), (4);
DELETE FROM bug13510739 WHERE c=2;
HANDLER bug13510739 OPEN;
HANDLER bug13510739 READ `primary` = (2);
# this one crashes the server IF the bug IS present
HANDLER bug13510739 READ `primary` NEXT;
DROP TABLE bug13510739;
На оффициальном сайте (http://dev.mysql.com/doc/refman/5.1/en/news-5-1-62.html) говорится, что пофиксено начиная с версии 5.1.62
Решил испытать на своей системе, где версия MySQL 5.1.61.
Скрины ниже.
http://s41.radikal.ru/i092/1208/b8/1419a00bd8d8t.jpg (http://radikal.ru/F/s41.radikal.ru/i092/1208/b8/1419a00bd8d8.png.html)
http://s005.radikal.ru/i210/1208/26/42e6b2eb6fddt.jpg (http://radikal.ru/F/s005.radikal.ru/i210/1208/26/42e6b2eb6fdd.png.html)
Зависимости:
MySQL 3
Результат - успешный перезапуск MySQL. PROFIT !!!