Как поймать операторы SQL в базе данных MySQL? - PullRequest
1 голос
/ 02 февраля 2012

Проще говоря, мне нужно написать приложение для синхронизации нескольких таблиц базы данных.Из-за требований изменения должны быть помещены в очередь (в форме оператора SQL), и здесь кроется проблема: я не могу изменить существующее приложение, которое использует базу данных, чтобы добавить выполненный запрос непосредственно в очередь.Поэтому мне нужно перехватить все данные, изменяющие запросы SQL конкретных таблиц (> 20 таблиц) в базе данных.

Я думаю о следующих решениях:

  • Чтобы перехватить запрос MySQL напрямуюс такими триггерами, как описано Может ли триггер получить доступ к строке запроса (лучший ответ для этого случая я смог найти!), но я не смог получить запрос, который активирует триггер - только запрос, который я использовалвнутри него.
  • Чтобы активировать общий журнал запросов.Но я читал рассуждение о тяжелой производительности и поэтому не является спорным решением, так как это было бы войти даже таблицы не нужно (> 120 таблиц) и много простых запросов, выполняемых в базе данных.

Кто-нибудь знает что-нибудь другое?решение или как я мог сделать невозможное, получив доступ к запросу в триггере?

Я благодарен за любое предложение!

Вопросы, связанные с данной:
Может ли триггер получить доступ к строке запроса
Журнал mysql db об изменении запросови пользователи

1 Ответ

1 голос
/ 02 февраля 2012

вы можете установить прокси-сервер mysql https://launchpad.net/mysql-proxy между существующим приложением и сервером mysql.И перехватывать / изменять / добавлять любые запросы в прокси.

...