DB copier MySql d'un serveur à un autre
Question
Je dois copier un DB MySQL à partir d'un serveur sur Linux à un serveur sous Windows. Je l'ai essayé d'utiliser mysqldump mais il ne semble pas inclure procédures stockées. Je veux copier tout, à savoir le schéma, les données, stockées procs, déclencheurs, etc.
Merci, Don
La solution
Vous voulez que le « --routines "option mysqldump .
De la documentation drapeau --routines:
Les procédures stockées Dump (procédures et fonctions) des bases de données sous-évaluées. L'utilisation de cette option nécessite SELECT privilège pour la table mysql.proc. Le signal de sortie généré à l'aide de --routines contient CREATE PROCEDURE et CREATE de fonction recréer les routines. Cependant, ces déclarations ne comprennent pas les attributs tels que la création de routine et horodatages de modification. Ça signifie que lorsque les routines sont rechargés, ils seront créés avec le horodatages égal au temps de recharge.
Si vous avez besoin d'être routines recréés avec leur origine attributs horodatage, 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 en MySQL 5.1.2. Avant cela, les routines stockées ne sont pas sous-évaluées. Les valeurs DEFINER de routine ne sont pas déversé jusqu'à ce que MySQL 5.1.8. Ça signifie que, avant 5.1.8, lorsque les routines sont rechargées, ils seront créés avec le définisseur réglé à l'utilisateur de rechargement. Si vous avez besoin des routines pour être recréés avec leur origine définisseur, décharge et charger le contenu de la table de mysql.proc directement décrit plus haut.
Autres conseils
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