web-dev-qa-db-fra.com

Comment exporter une base de données MySQL avec des déclencheurs et des procédures?

Comment exporter/vider la base de données mysql avec tous les déclencheurs et procédures.

71
Yugal

mysqldump sauvegardera par défaut tous les déclencheurs mais [~ # ~] pas [~ # ~] les procédures/fonctions stockées . Il y a 2 paramètres mysqldump qui contrôlent ce comportement:

  • --routines - FALSE par défaut
  • --triggers - VRAI par défaut

donc dans la commande mysqldump, ajoutez --routines comme :

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

lire plus dans cet article

103
Haim Evgi

C'est peut-être évident pour les utilisateurs experts de MYSQL, mais j'ai perdu du temps à essayer de comprendre que la valeur par défaut n'exporterait pas les fonctions. J'ai donc pensé mentionner ici que - routines param doit être défini sur true pour que cela fonctionne.

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

J'ai créé le script suivant et cela a bien fonctionné pour moi.

#! /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*

et vous appelez le script en utilisant des arguments de ligne de commande.

backupdb.sh my_db dev_user dev_password
4
Krishna Vedula