Есть ли способ записывать все изменения в базе MYSQL?
Включите бин-логи и будет Вам счастье. Откатить по времени можно на любой момент, вплоть до секунд.
Согласен с использованием триггеров. Откатить назад вы сможете — будет вся информация о изменениях в любой таблице, максимально прозрачно.
Пример использования habrahabr.ru/blogs/mysql/121129/.