Pour exporter ou importer avec MySQL, commencez par vous connecter à votre serveur, de préférence avec sudo
accès (racine).
Exporter depuis MySQL
Le meilleur outil pour exporter une base de données MySQL vers un fichier texte est mysqldump
.
Pour utiliser mysqldump
, vous devrez connaître les identifiants de connexion d'un MySQL user
approprié qui dispose des privilèges nécessaires pour exporter la base de données en question.
Avec ces informations en main, entrez le mysqldump
commande avec les indicateurs et options appropriés :
$ mysqldump -u my_username -p database_name > output_file_path
Les options utilisées sont :
- Le
-u
flag indique que leusername
MySQL suivra. - Le
-p
flag indique que nous devrions être invités à saisir lepassword
associé auusername
ci-dessus . database_name
est bien sûr le nom exact de la base de données à exporter.- Le
>
le symbole est une directive Unix pourSTDOUT
, qui permet aux commandes Unix de générer les résultats textuels de la commande émise vers un autre emplacement. Dans ce cas, cet emplacement de sortie est un chemin de fichier, spécifié paroutput_file_path
.
Remarque :Il est généralement conseillé de saisir le chemin complet et le nom de fichier pour le output_file_path
, de sorte que le fichier résultant est généré exactement là où vous le souhaitez.
Par exemple, pour exporter les books
base de données en tant que book_admin
utilisateur à la ~/backup/database
répertoire, nous pourrions utiliser la commande suivante :
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
Après avoir entré notre mot de passe lorsque vous y êtes invité ci-dessus, cette commande crée ensuite notre fichier de sauvegarde avec un .sql
suffixe (complètement facultatif mais conseillé) dans le répertoire approprié.
Par défaut, mysqldump
ne le fera pas enregistrer les commandes qui tentent de modifier l'existence de la base de données réelle. Au lieu de cela, par défaut, seules les tables
réelles (et leurs données respectives) sont enregistrés et seront donc préparés pour une importation ultérieure à l'aide de ce fichier. Si vous avez besoin de la possibilité d'exporter (et de recréer plus tard) une base de données supplémentaire, lisez la section --databases
drapeau dans la documentation officielle.
Importer dans MySQL
Maintenant que vous avez appris à exporter une sauvegarde d'une base de données MySQL, nous allons explorer comment inverser le processus et importer la sauvegarde dans une base de données existante.
Comme vous pouvez l'imaginer, pour compléter le mysqldump
commande utilisée pour l'exportation, il existe un mysqlimport
similaire commande d'importation.
Dans la plupart des cas, l'importation est juste une question de passage pratiquement identique options à mysqlimport
commande. Pour importer nos books.sql
sauvegardés fichier créé plus tôt, nous utiliserions plusieurs des mêmes drapeaux et à peu près la même syntaxe.
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
Comme précédemment, le -u
et -p
des drapeaux sont requis pour l'authentification, qui est ensuite suivi du nom de la database
dans lequel importer (dans ce cas, nous utilisons une base de données de production différente), puis enfin en spécifiant le chemin complet vers le fichier de vidage SQL qui contient nos données d'importation, ~/backup/database/books.sql
. Il convient également de noter que mysqlimport
ne nécessite pas le <
ou >
(STDIN/STDOUT) symboles qui ont été utilisés avec mysqldump
.
Avec cela, vous avez appris à la fois comment exporter/sauvegarder une base de données existante, et comment ensuite importer/restaurer ces données dans la même base de données ou même dans une autre.