Importer une base de données MySQL

Voici un moment crucial… vous avez paramétré votre serveur et vous voulez maintenant installer sur ce serveur votre ancien blog WordPress (hébergé sur votre hébergement mutualisé…). Simple à faire… oui… mais problème l’import d’une base de données via PhpMyAdmin est possible QUE SI ELLE N’EST PAS VOLUMINEUSE.

Dans cet exemple je vous propose  d’importer sur le serveur dédié une base de 100 Mo environ ! Pour réalise cette opération vous allez devoir passer par des commandes SSH de votre serveur dédié.

Étape 1 : Avant tout il faut déposer sur un compte FTP créé sur votre serveur dédié, votre base que vous avez importée (de votre ancien blog).
La création d’un espace disque ftp est très simple à ajouter à partir de l’interface de ISPCONFIG3. Vous créez un espace disque très simplement en donnant un mot de passe  et un nom d’utilisateur. Un peu comme lorsque OVH vous envoie par mail votre login/passe sur un serveur mutualisé !

Étape 2 : Paramétrez et connectez-vous (logiciel Filezilla ) à votre espace FTP (nouvellement créé à partir d’ISPCONFIG3).

Étape 3 : Déposez votre base de données qui sera importée. Dans cet exemple la base de données se nomme :

ariegeblog.dump

Étape 4 : Vous devez vous connecter avec PUTTY en SSH

Avant de présenter l’étape 5, vous devez à ce niveau connaitre l’arborescence dans laquelle vous avez déposé votre base de données à importer. Je m’explique,… vous avez déposé votre base sur votre ftp, elle est donc sur votre serveur dédié à un endroit précis, dans un répertoire.

Comment retrouver ses dossiers utilisateurs sur le serveur ?
Vous avez créé des sites avec l’interface ISPCONFIG (ftp, dns…) et vous aimeriez savoir où se trouvent vos fichiers dans l’arborescence du SERVEUR.

Par défaut ISPCONFIG3 place les fichiers dans :  /var/www/clients/clientX/webX

A titre d’exemple dans le terminal SSH, je tape :

cd /var/www/clients/client1/web1/web

et ensuite je liste le répertoire : ls

…vous obtiendrez ainsi la liste des fichiers constituant votre site internet que vous avez placés lors de votre transfert FTP.

Étape 5 (en commande SSH)
PUTTY => vous vous loguez à votre serveur.

Vous allez devoir passer une ligne de commande dans le terminal SSH afin d’importer votre base déposée sur le serveur ftp. Techniquement cela donne ceci :

mysql -u utilisateur -p  base_exportee < base_exportee.sql

Voici la ligne de code correspondante à mon blog

nom de l’utilisateur de la base cible : xxxxxxxx
Nom de la base cible (créée avec ISPCONFIG) = c1_base2
Répertoire contenant la base de votre ancien blog que vous avez déposé via le protocole ftp (SQL = ariegeblog.dump). Pour trouver le « chemin » référez-vous au début de cet article.

Cela donne (pour cet exemple) ceci :

mysql -u xxxxxxx -p  -b c1_base2 < /var/www/clients/client1/web1/web/ariegeblog.dump

Voilou, un p’tit tour dans phpMyADMIN et normalement vous retrouverez tous les champs de votre ancienne base de données. Petit hic… lorsque vous vous connectez sur votre site les liens ne sont plus bons !

Remplacer les liens constituants votre base SQL par votre nouvelle URL

Dans le prolongement de l’importation de la base de données, il faudra ensuite reconstruire les liens des articles de votre base en les renommant avec votre nouvelle URL. Dans votre base de données importée, vous allez devoir exécuter un ensemble de commandes sur certaines de vos TABLES de la SQL !
Pourquoi ? Tout simplement parce que la base a gardé les url de votre ancien blog. Il faut donc les remplacer par votre nouvelle url et reconstruire ainsi tous les liens de la base.

Dans cet exemple j’ai transféré la base SQL de mon blog ariege360.fr vers le serveur dédié où je fais pointer l’URL ariegepyrenees360.com vers le blog. Ainsi il faut remplacer tous  les éléments de la base commençant par http://wwww.ariege360.fr par http://www.ariegepyrenees360.com

Pour compliquer  le tout j’avais hébergé mon blog non pas à la base de l’arborescence d’OVH : www

… mais dans un répertoire placé dans www se nommant « blog » !

Ainsi, en réalité il me faut remplacer tost les liens de la base commençant par http://wwww.ariege360.fr/blog………. par http://wwww.ariegepyrenees360.com !

Pour réaliser cette opération : 2 solutions

Solution n°1 :
Rechercher/remplacer dans votre base à partir de l’éditeur WordPad => pour ma part cette opération a fait planter wordpad !

Solution n°2 : (directement dans PhpMyAdmin)

Vous allez devoir lancer une requête sur certaines TABLES de votre base SQL. Pour cela rendez-vous sur phpMyAdmin afin d’effectuer cette requête sur les tables.

ISPCONFIG3 vous permet de vous connecter directement à PhpMyAdmin, autrement vous empruntez le lien qui vous a été donné par OVH.

 

Vous lancez vos requêtes les unes après les autres. A titre d’exemple voici la première requête (cf image ci-dessus).

Vous exécutez l’instruction suivante :

UPDATE wp_posts SET post_content = replace( post_content,'http://www.ariege360.com/','http://www.ariegepyrenees360.com/')

Explications : Dans la TABLE de wordpress se nommant WP_POST vous ciblez le champ POST_CONTENT ou vous recherchez l’expression http://wwww.ariege360.fr/blog pour la REMPLACER par http://www.ariegepyrenees360.com

 

Vous pouvez faire de même avec :

UPDATE wp_posts SET guid = replace(guid,'ariege360.fr/blog/','ariegepyrenees360.com/')
UPDATE wp_options SET option_value = replace( option_value,'ariege360.fr/blog','ariegepyrenees360.com');

 

idem avec les lignes suivantes

UPDATE wp_postmeta SET meta_value = replace( meta_value,'ariege360.fr/blog/','ariegepyrenees360.com')
UPDATE wp_comments SET comment_author_url = replace( comment_author_url,'ariege360.fr/blog/','ariegepyrenees360.com');
UPDATE wp_comments SET comment_author_url = replace( comment_author_url,'ariege360.fr/blog/','ariegepyrenees360.com');
UPDATE wp_comments SET comment_content = replace( comment_content,'ariege360.fr/blog/','ariegepyrenees360.com');

 

N’oubliez pas… dans cet exemple je transfère le blog : ariege360.fr/blog vers ariegepyrenees360.com

Bon courage !

 

2 commentaires
  1. Très bon tuto. Solution 3 pour changer les urls dans les tables de la base sql, il existe un script php très utile: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ Recherche et remplace dans toutes les tables sélectionnées.

  2. Merci Erwan pour le lien ! 😉

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.