Est-il possible de dupliquer une base de données MySQL entière sur un serveur Linux?
Je sais que je peux utiliser l'exportation et l'importation, mais la base de données d'origine est> 25 Mo, donc ce n'est pas idéal.
Est-il possible d'utiliser mysqldump ou en dupliquant directement les fichiers de la base de données?
--routines
en option pour ce cas.~/.bash_history
fichier après l'avoir exécuté. Ou vous pouvez également afficher le résultat de la première commande dans un fichier temporaire et exécuter ce qui suit après (ce qui vous demandera le mot de passe)mysql -p -u admin duplicatedb < temporaryfile.sql
.Vers le serveur distant
Vers le serveur local
la source
Je fais parfois un mysqldump et dirige la sortie dans une autre commande mysql pour l'importer dans une autre base de données.
la source
Créez un fichier mysqldump dans le système qui contient les données et utilisez pipe pour donner ce fichier mysqldump comme entrée au nouveau système. Le nouveau système peut être connecté à l'aide de la commande ssh.
pas d'espace entre -p [mot de passe]
la source
Voici un fichier Windows Bat que j'ai écrit qui combine les suggestions de Vincent et Paul. Il demande à l'utilisateur les noms de source et de destination.
Modifiez simplement les variables en haut pour définir les chemins appropriés vers vos exécutables / ports de base de données.
Exemple de sortie:
la source
Cela ne fonctionnera pas pour InnoDB. Utilisez cette solution de contournement uniquement si vous essayez de copier des bases de données MyISAM.
Si le verrouillage des tables pendant la sauvegarde et, éventuellement, la mise en pause de MySQL pendant l'importation de la base de données est acceptable, mysqlhotcopy peut fonctionner plus rapidement.
Par exemple
Sauvegarde:
Restaurer:
mysqlhotcopy peut également transférer des fichiers via SSH (scp) et, éventuellement, directement dans le répertoire de la base de données dupliquée.
Par exemple
la source
Faire une copie d'une base de données
la source
Cela a fonctionné pour moi avec l'invite de commande, de l'extérieur du shell mysql:
Cela me semble le meilleur moyen. Si vous zippez "dump.sql", vous pouvez le stocker sous forme de sauvegarde compressée. Cool! Pour une base de données de 1 Go avec des tables Innodb, environ une minute pour créer "dump.sql" et environ trois minutes pour vider les données dans le nouveau DB db2.
Copier directement le répertoire de la base de données de trou (mysql / data / db1) ne fonctionnait pas pour moi, je suppose à cause des tables InnoDB.
la source
Il était une fois dans MySQL, vous pouviez simplement copier tous les fichiers de la table dans un autre répertoire de l'arborescence mysql
mysql cli - créer la base de données db2
linux cli - cp db1 db2
la source