2009-06-09 2 views
0

J'ai besoin de copier une base de données MySQL à partir d'un serveur sous Linux vers un serveur sur Windows. J'ai essayé d'utiliser mysqldump mais cela ne semble pas inclure les processus stockés. Je veux copier tout, à savoir schéma, données, procédures stockées, déclencheurs, etc.copier MySQL DB d'un serveur à l'autre

Merci, Don

Répondre

2

Vous voulez l'option "--routines" de mysqldump.

De la documentation --routines drapeau:

Dump routines stockées (procédures et fonctions ) des bases de données sous-évaluées. L'utilisation de cette option nécessite le privilège SELECT pour la table mysql.proc. La sortie générée à l'aide --routines contient CREATE PROCEDURE et CREATE FUNCTION pour recréer les routines. Toutefois, ces instructions n'incluent pas les attributs tels que la création de routine et les horodatages de modification . Cela signifie que lorsque les routines sont rechargées, ils seront créés avec le TimeStamps égal au temps de recharge.

Si vous avez besoin des routines pour être recréée avec leurs attributs d'horodatage d'origine, ne pas utiliser --routines. Au lieu de cela, et recharger les vider le contenu de la table mysql.proc directement, en utilisant un compte MySQL a des privilèges appropriés pour la base de données mysql.

Cette option a été ajoutée dans MySQL 5.1.2. Avant cela, les routines stockées ne sont pas jetées. Les valeurs de routine DEFINER ne sont pas sauvegardées jusqu'à MySQL 5.1.8. Cela signifie que, avant 5.1.8, lorsque les routines sont rechargées, ils seront créés avec le définisseur mis à l'utilisateur rechargeant. Si vous avez besoin des routines pour être recréé avec leur origine définisseur, et charger le vidage contenu de la table mysql.proc directement décrit précédemment.

2
mysqldump -u root -p --routines --databases io \ 
| sed -e "s/;;/\$\$/g" \ 
> io.sql 

s'il vous plaît essayer décharge. et commande d'importation:

mysql -u root -p --fource --databases io < io.sql 
Questions connexes