Программа отследить изменения в бд Mysql

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
Есть программы, которые следят за изменением файлов в системе, например при установке проги показывают какие файлы были изменены или добавлены. Есть программы, которые следят за изменением реестра и тоже показывают какие ветки были добавлены или изменены.

Есть ли похожая программа, которая бы показывала изменения содержимого БД mysql ?
 
  • Заблокирован
  • #2
почитайте про триггеры в mysql как раз то что вам нужно.
 
Думаю, что не совсем подходит. Есть локальный сайт, например форум. Есть для него база. Запускаю, например ссылку создать сообщение. Создаю его. Надо отследить где он записал данные в базу. Править php скрипты, лазить по ним в поисках какие команды выполняются, создавать триггеры в базе - нет желания.

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

Виндовую программу я не встречал. И я с трудом представляю принцип ее работы. Она должна хранить дамп БД, с которым бы сравнивала текущую версию БД.
 
Запускаю, например ссылку создать сообщение. Создаю его. Надо отследить где он записал данные в базу.

Для таких целей добавил в my.ini строчки
general_log = 1
general_log_file = "/mysql/data/mysql.log"

И после выполнения запроса ковыряюсь в файлике.
 
Виндовую программу я не встречал. И я с трудом представляю принцип ее работы. Она должна хранить дамп БД, с которым бы сравнивала текущую версию БД.
Сканирует бд до изменений, сканирует бд после изменений. Выдает различия. Аналогично работаю некоторые проги, показывающие изменения файлов и файлов реестра.

По триггерам не удобно. Есть 50 таблиц. В каждую таблицу добавлять триггер - гемморойно.

например копировать эту строку в определенную таблицу с указанием времени измения. Ну это уже как настроить.

Нужно копировать строку в такую же таблицу. Т.е. нужна копия таблицы. Я так понимаю.


p.s. Часто появляются задачи доработать какой-нибудь движок. Нужно знать в какие колонки, что записывается при определённых обращениях php скрипта к mysql.
 
А вам для каких целей, уважаемый dandandan?
Если необходима репликация — то в mysql есть стандартная схема
master-slave репликации. можно почитать, к примеру, тут:
Для просмотра ссылки Войди или Зарегистрируйся MySQL позволяет логировать любые действия с базой в виде sql-запросов.
Если необходимы какие-то логи или уведомления при конкретных действиях с конкретными таблицами - то юзайте триггеры.

Иначе более точно поставьте задачу.

UPD:

Нужно знать в какие колонки, что записывается при определённых обращениях php скрипта к mysql.
пока писал вам ответ, вы уже уточнили


Тогда вам следует копать в сторону General Query Log
Доступно описано об этом тут:
Для просмотра ссылки Войди или Зарегистрируйся

Ищите на странице по ссылке фразу "В случае с MySQL мы можем применить general query log" и читайте далее по тексту
 
Последние посты более информативны, но все же хочется готовое софтовое решение.
 
Назад
Сверху