Недавно столкнулся с такой проблемой. Развернул бекап mysql базы в среде разработке, и не нашел хранимые процедуры. Бекап я делаю через штатную програмку mysqldump. Она хороша тем, что это официальный инструмент для бекапа, он входит в пакет mysql.
Итак, чтобы mysqldump сохранял процедуры, нужно добавить ключ
--routines
Полностью команда:
#!/bin/sh data=`/bin/date +%d.%m.%Y_%H-%M-%S` /usr/bin/mysqldump --user=root --password=pass --routines name_db > /root/sql/sql-dump_${data}.sql
mysqldump есть еще много нюансов работы. Один из важным моментов — она блокирует БД, на время работы, так что, если ваше БД больше гига, лучше это делать на слейв сервере.
А так можно всю БД забекапить
/usr/local/bin/mysqldump --all-databases --default-character-set=utf8 --user=root --password=passroot > /home/webmaster/sql-dump.sql
Путь до mysqldump может быть другой.
Узнать его можно командой
which
which mysqldump