Si vous utilisez MySQL version 3.23, vous pouvez copier les
fichiers .frm
, .MYI
et
.MYD
entre les différentes architectures
qui supportent le même format de nombre à virgule flottante
(MySQL prend en charge les échanges d'octets). See
Section 14.1, « Le moteur de tables MyISAM
».
Les données MySQL des tables ISAM
et les
fichiers d'index (.ISD
et
*.ISM
, respectivement) sont dépendantes de
l'architecture, et dans certains cas, dépendantes du système
d'exploitation. Si vous voulez déplacer des applications vers
une autre machine qui a une autre architecture, ou un autre
système d'exploitation que votre machine courante, il est
recommandé de ne pas faire une simple copie de base en copiant
les fichiers vers leur nouvelle destination. Utilisez plutôt
mysqldump
.
Par défaut, mysqldump
va créer un fichier
de requêtes SQL. Vous pouvez alors transférer le fichier sur
une autre machine, et le fournir comme script à un client
mysql
.
Essayez la commande mysqldump --help
pour
voir quelles options sont disponibles. Si vous envoyez les
données vers une nouvelle version de MySQL, il recommandé
d'utiliser l'option mysqldump --opt
pour
obtenir un export compact et plus rapide.
Le plus facile (mais pas le plus rapide) pour déplacer une base de données entre deux machines et d'exécuter les commandes suivantes sur la machine qui héberge la base :
shell>mysqladmin -h 'other hostname' create db_name
shell>mysqldump --opt db_name \
| mysql -h 'other hostname' db_name
Si vous voulez copier la base depuis une machine distante sur un réseau lent, vous pouvez utiliser :
shell>mysqladmin create db_name
shell>mysqldump -h 'other hostname' --opt --compress db_name \
| mysql db_name
Vous pouvez aussi stocker le résultat dans un fichier, et transférer le fichier sur la machine de destination, puis charger ce fichier dans le serveur. Par exemple, vous pouvez exporter la base vers un fichier source comme ceci :
shell> mysqldump --quick db_name | gzip > db_name.contents.gz
Le fichier créé est compressé. Transférez le fichier contenant le contenu de votre base sur la machine de destination, puis utilisez ces commandes :
shell>mysqladmin create db_name
shell>gunzip < db_name.contents.gz | mysql db_name
Vous pouvez aussi utiliser mysqldump
et
mysqlimport
pour accomplir cette opération.
Pour les grandes tables, c'est bien plus rapide que d'utiliser
simplement mysqldump
. Dans les commandes
suivantes, DUMPDIR
représente le chemin
complet du dossier que vous utilisez pour stocker le résultat
de mysqldump
.
Premièrement, créez un dossier pour les fichiers d'exportation, puis faites l'export :
shell>mkdir DUMPDIR
shell>mysqldump --tab=DUMPDIR db_name
Puis transférez les fichiers du dossier
DUMPDIR
dans un dossier correspondant, dans
la machine de destination, puis chargez ces fichiers dans MySQL
comme ceci :
shell>mysqladmin create db_name # Création de la base
shell>cat DUMPDIR/*.sql | mysql db_name # Création des tables dans la base
shell>mysqlimport db_name DUMPDIR/*.txt # Chargement des données dans les tables
N'oubliez pas non plus de copier le contenu de votre base
mysql
car c'est là que résident les droits
(user
, db
,
host
). Vous devrez alors exécuter les
commandes en tant que root
MySQL sur la
nouvelle machine, jusqu'à ce que vous ayez réinstallé
mysql
.
Après l'importation de la base mysql
sur la
nouvelle machine, exécutez la commande mysqladmin
flush-privileges
pour que le serveur relise les
droits.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.