Подтвердить что ты не робот

Как экспортировать базу данных MySQL с помощью триггеров и процедур?

Как экспортировать/удалять базу данных mysql со всеми триггерами и процедурами.

4b9b3361

Ответ 1

mysqldump будет резервировать по умолчанию все триггеры, но НЕ хранимые процедуры/функции. Есть 2 параметра mysqldump, которые управляют этим поведением:

  • --routines - ЛОЖЬ по умолчанию
  • --triggers - TRUE по умолчанию

поэтому в команду mysqldump добавьте --routines как:

mysqldump <other mysqldump options> --routines > outputfile.sql

читайте больше в этой статье

Ответ 2

Может быть, это очевидно для опытных пользователей MYSQL, но я потратил немного времени, пытаясь выяснить, что значение по умолчанию не экспортирует функции. Поэтому я решил упомянуть здесь, что --routines параметр должен быть установлен в true, чтобы он работал.

mysqldump --routines=true -u <user> my_database > my_database.sql

Ответ 3

Я создал следующий скрипт, и он отлично сработал.

#! /bin/sh
cd $(dirname $0)
DB=$1
DBUSER=$2
DBPASSWD=$3
FILE=$DB-$(date +%F).sql
mysqldump --routines "--user=${DBUSER}"  --password=$DBPASSWD $DB > $PWD/$FILE
gzip $FILE
echo Created $PWD/$FILE*

и вы вызываете скрипт, используя аргументы командной строки.

backupdb.sh my_db dev_user dev_password