OVH Community, votre nouvel espace communautaire.

Migrer une base WordPress créée par module OVH vers une base MySQL "normale"


Bernard91
19/02/2016, 18h31
Bonjour Cassiopee,
Je cherche ces jours ci à faire cette migration vers une base MySQL "normale" avec ce script, mais sans succès, et sans aucun message, ni du debug ni des lignes PRINT du code. Mon PHP est à la version 7.0 et mon site a été créé en 2014. Faut-il utiliser un script plus récent?

koshyl
30/11/2014, 23h29
Merci pour ton aide Gaston_Phone

J'ai cru que mes bases étaient vides comme me l'indiquait le manager OVH et en réalité elles ne le sont pas.
Du coup j'ai pas utilisé les modules d'OVh et je viens troller ce forum inutilement.
Milles excuses

Gaston_Phone
28/11/2014, 18h53
Je viens de t'envoyer un MAIL.

koshyl
28/11/2014, 18h40
Citation Envoyé par Gaston_Phone
As-tu :
  • Exporté l'ancienne base de données ?
Non car je ne sais pas où elle se trouve, il n y a riendans mon manager (Hébergement>Services Web> Modules) et rien dans la base de données que j'avais créé chez OVH.

  • Importé l'export dans la nouvelle base de données ?
Non plus pour la même raison

J'ai sauvegardé mes pages manuellement ainsi que mes dossiers FTP.

Gaston_Phone
28/11/2014, 15h16
As-tu :
  • Exporté l'ancienne base de données ?
  • Importé l'export dans la nouvelle base de données ?


- - - Mise à jour - - -

Je viens de mettre un message sur ton profil.

koshyl
28/11/2014, 14h38
Bonjour et merci pour ce tuto

J'ai suivi les explications et j'obtiens un message d'erreur après avoir exécuté le script :

"Attention, votre fichier 'wp-config.php' semble ne pas utiliser le module OVH WordPress.
Si vous avez deja execute une premiere fois ce script, verifiez que votre fichier
'wp-config.php' contient bien les informations de connexion a votre ancienne base de donnees
et non celles de la nouvelle base."

Oui c'est vrai, j'ai vérifié, ce sont les infos de la nouvelle base de données qui sont affichées dans wp-config.php.
Et le fichier "wp-config-nouveau.php" n'a pas été créé.
Pourtant le site est en ligne et fonctionnel.
Et la nouvelle base de données est désespérément vide.

Dans mon manager OVH je ne vois aucun module installé (pour aucun de mes sites wordpress d'ailleurs).

Que puis-je faire ?


Config :
WordPress 4.1
Site : compim-lyon.fr/EV3/
Editeur : Gedit
Pour info, à la racine de mon hébergement il y a quelques fichiers Spip qui sont là et des dossiers qui hébergent d'autres sites (sous Spip ou WordPress avec modules OVH).

Adlin77
16/08/2014, 23h13
Re bonsoir à tous !

C'est bon j'ai refait la manipulation et cette fois cela a marché ! Bizarre pourtant j'ai refait la même manip !... Mais bon l'essentiel est que ça a fonctionné ! Merci merci MERCI pour ce tuto !!!!! C'est vraiment super !

Bonne soirée ! :-)
Adeline.

Adlin77
16/08/2014, 19h24
Bonsoir à tous !

J'espère que cassiopee pourra lire mon message... et pourra m'aider, même si le sujet de ce post date un peu ! :-)

J'ai un souci, j'ai suivi le tuto, j'ai réussi à migrer mon site web vers une base MySQL normale. Tout a fonctionné étape par étape, j'ai renommé manuellement (par FTP) le fichier en "wp-config.php", en renommant au préalable l'ancien. Mon site web est toujours en ligne, il fonctionne. Par contre, lorsque je veux me connecter sur le tableau de bord wordpress (sur la page d'administration de mon site web), je ne peux plus me connecter ! Il ne reconnait plus mon identifiant ni mon mot de passe... Comment cela se fait-il ? Pouvez-vous m'aider ?

Merci d'avance !! :-)

Bonne soirée !

Adeline.

cassiopee
16/07/2013, 14h57
Cool

C'est bon à savoir Makoto, merci pour ce retour d'infos

makoto
16/07/2013, 14h21
merci cassiopee
le script fonctionne toujours parfaitement en wordpress 3.5 et en 2013

cassiopee
10/12/2012, 22h30
Merci Cavor

Cavor
10/12/2012, 22h05
Juste un petit merci en passant pour cet excellent tuto

cassiopee
18/11/2012, 12h56
Déjà merci pour ce retour d'infos

Peut-être que tu avais essayé trop vite (tout est relatif) d'utiliser ta base de données ?
Elle n'était peut-être pas encore tout à fait bien créée dans le serveur d'OVH ?
(c'est l'impression que me donne le topic que tu as mis en lien où l'on voit que
parfois l'accès se rétablit "tout seul")

Enfin, si réinitialiser le mot de passe a permis de t'en sortir, c'est l'essentiel

J'ai modifié le tuto pour intégrer ces informations.

PMVinovelo
18/11/2012, 12h06
Bonjour,

Merci pour ce tuto.

J'ai rencontré un problème concernant l'accès à la nouvelle base de donnée.

Via l'accès phpMyAdmin d'OVH j'avais l'erreur suivante:

#1045 Connexion au serveur MySQL non permise
L'erreur est visiblement courante (TOPIC sur le Forum). Dans mon cas il fallait réinitialiser le mot de passe, quite à mettre le même.

Après cette mis à jour, le script s'est bien lancé, et la migration a été effectuée avec succès.

Bonne migration à tous !

P.M

julieweb
30/05/2012, 16h31
ok merci, je vais faire une tentative, vous ferai part de mon retour d'expérience sur cette manip !

cassiopee
30/05/2012, 16h28
Citation Envoyé par julieweb
est ce que tout mon contenu serait à la même place qu'actuellement ? (c'est à dire les URL idem site/repertoire/nomdelarticle)
Oui, tout à fait, tout ceci ne concerne que le "back office" de WordPress
et n'a normalement pas d'impact sur la présentation visible pour le grand
public (ni même la partie "admin/webmaster" du site web).

julieweb
30/05/2012, 16h17
Ok merci, ça semble un peu compliqué, enfin en tout cas risqué quand on ne maitrise pas forcément bien les bases de données...
Mais si jamais j'y arrivais (ou que quelqun d'autre y arrivait pour moi ) est ce que tout mon contenu serait à la même place qu'actuellement ? (c'est à dire les URL idem site/repertoire/nomdelarticle)

cassiopee
30/05/2012, 16h12
Citation Envoyé par julieweb
Merci beaucoup pour votre aide

D'ailleurs j'en profite pour poser une autre question


Comme je n'ai qu'une seule base de donnée avec mon hébergement mais que j'ai 2 wordpress dont 1 est maintenant sur cette base et non plus sur le module.
Y a t'il une procédure particulière à suivre si je voulais regrouper ces 2 bases en une seule ? sachant que le blog est un répertoire du site mère. C'est à dire migrer la base du module vers la BDD que je viens de créer (sinon ça m'oblige à acheter une 2 ème BDD ...)

Merci
Dans l'absolu c'est faisable mais ça risque d'être un peu délicat à faire :

1) il faudrait faire une première migration (site mère ou le blog, peu importe)

2) renommer toutes les tables via phpmyadmin ( https://phpmyadmin.ovh.net/) en ajoutant un préfixe
commun à chacune. Une table "toto" deviendrait ainsi "wp1_toto" par exemple, une table "titi" devenant "wp1_titi", etc.

3) modifier la configuration de ce WordPress afin de lui indiquer le préfixe
"wp1_" à utiliser afin d'accéder à ses tables. ça se fait en modifiant
la variable "$table_prefix" dans le fichier "wp-config.php" du WordPress
concerné :

Code:
$table_prefix = 'wp1_'
3 bis) bien vérifier que ce premier site fonctionne toujours normalement

4) faire la deuxième migration


Et si on veut faire très propre :

5) renommer les tables de la seconde base via phpmyadmin en ajoutant
un préfixe commun à chacune. Une table "toto" deviendrait alors "wp2_toto"
par exemple, une table "titi" devenant "wp2_titi", etc.

6) modifier la configuration de ce WordPress afin de lui indiquer le préfixe
"wp2_" à utiliser afin d'accéder à ses tables. ça se fait en modifiant
la variable "$table_prefix" dans le fichier "wp-config.php" du WordPress
concerné :

Code:
$table_prefix = 'wp2_'
Avant de se lancer : faire une sauvegarde des wp-config.php initiaux afin de pouvoir revenir en arrière en cas de souci.

=> Surtout ne pas lancer la deuxième migration sans avoir renommé
les tables de la première base (sinon les secondes tables vont venir écraser
structure et données des premières, perdant de fait la première base
migrée)

julieweb
30/05/2012, 15h53
Merci beaucoup pour votre aide

D'ailleurs j'en profite pour poser une autre question


Comme je n'ai qu'une seule base de donnée avec mon hébergement mais que j'ai 2 wordpress dont 1 est maintenant sur cette base et non plus sur le module.
Y a t'il une procédure particulière à suivre si je voulais regrouper ces 2 bases en une seule ? sachant que le blog est un répertoire du site mère. C'est à dire migrer la base du module vers la BDD que je viens de créer (sinon ça m'oblige à acheter une 2 ème BDD ...)

Merci

cassiopee
30/05/2012, 15h41
Petit retour d'info : c'était simplement un souci dans le mot de passe de la nouvelle base
de donnée ; je vais modifier le script afin de mieux détecter ce cas de figure à l'avenir.

cassiopee
30/05/2012, 15h06
C'est bien reçu, je regarde

julieweb
30/05/2012, 14h51
Voilà, c'est envoyé

cassiopee
30/05/2012, 14h28
Citation Envoyé par julieweb
alors non il s'agit du site mère et non du sous site (qui d'ailleurs continue à fonctionner alors que le site mère indique erreur de connexion à la database)

Les 2 ont été installés avec le module OVH, je viens de vérifier dans les modules.
C'est ce qui est un peu curieux, il me semblait également que l'on ne pouvait
installer qu'une seule fois un module dans un compte donné ?

Sachant que le site mère est la version Wordpress 2.9.1 et le blog Wordpress3.2.
Ok, on est bien d'accord qu'en vue de la migration, il a fallu créer 2 nouvelles
bases Mysql ? (je veux dire pas uniquement une seule nouvelle base)

Ensuite il est possible que j'ai fait des mise à jour (mais pas de la BDD) du site mère sans passer par le module mais via le FTP
Ok, peut-être que si le fichier "wp-config.php" a été 'personnalisé' par
des mises à jour, ça a pu faire échouer la procédure.

Serait-il possible de me faire parvenir :

- le "wp_move_db.php" personnalisé
- le "wp-config.php" ancien (celui qui fonctionne en tant que module)

intacts par email (mon adresse est dans mon profil), histoire que je regarde
ce qu'il en est ?

julieweb
30/05/2012, 14h26
sachant que lorsque je vais sur http://epop.fr/wp_move_db il est écrit que tout s'est bien déroulé

julieweb
30/05/2012, 14h11
alors non il s'agit du site mère et non du sous site (qui d'ailleurs continue à fonctionner alors que le site mère indique erreur de connexion à la database)

Les 2 ont été installés avec le module OVH, je viens de vérifier dans les modules. Sachant que le site mère est la version Wordpress 2.9.1 et le blog Wordpress3.2.
Ensuite il est possible que j'ai fait des mise à jour (mais pas de la BDD) du site mère sans passer par le module mais via le FTP

cassiopee
30/05/2012, 14h07
Citation Envoyé par julieweb
Est ce que je peux recommencer la procédure telle quelle ou il faut que je fasse une manip avant ?
Non, c'est inutile de recommencer pour le moment.

cassiopee
30/05/2012, 14h06
Il faudrait davantage de détails : notamment s'agit-il du "sous-site" évoqué précédemment ?

Si oui, est-ce sûr à 100% qu'il a été installé via un module OVH et non en tant que
WordPress classique ?

Si c'est en tant que module OVH, quelle est la version du WordPress en question ?

julieweb
30/05/2012, 13h57
Je viens de remettre l'ancien wp-config et le site remarche. Mais lorsque je renomme le wp-config-nouveau en wp-config ça replante...
Que dois-je regarder pour savoir d'où vient l'erreur ?

Est ce que je peux recommencer la procédure telle quelle ou il faut que je fasse une manip avant ?

julieweb
30/05/2012, 13h52
Bon là par contre en réalisant la procédure sur un de mes sites j'ai un soucis, il ne marche plus....

Ca a pourtant bien marché avec tous les autres.

J'ai envoyé le fichier wp_move_db sur le ftp, j'ai exécuté le script en tapant l'url , ca a bien dit que tout était ok puis en allant sur la home de mon site,

J'ai ce message : Error establishing a database connection

Que faire ? Comment récupérer la base et l'ancien site ?

merci de votre aide....

cassiopee
29/05/2012, 21h58
Oui c'est vrai qu'à la réflexion, c'est un peu étonnant. Peut être une histoire de
domaine/sous-domaine/multi-domaine qui permet de bidouiller ?

RobertG
29/05/2012, 21h26
Deux installations de Wordpress par "module OVH" ? Il me semblait qu'on ne pouvait en faire qu'une pour chacun des modules disponibles. Aurais-je mal compris ?

cassiopee
29/05/2012, 18h12
Citation Envoyé par julieweb
En fait j'ai changé d'éditeur de texte et ça a marché
Cool , sans doute un problème de copier-coller ou d'encodage dans ce cas.

En revanche j'ai une autre petite question. J'ai un de mes site wordpress au sein duquel il y a un autre wordpress (ex : site mère>> monsite.com et 2nd >>monsite.com/blog). Les 2 installés via le module wordpress d'OVH.

Faut-il suivre la même procédure pour les récupérer ? faut il créer 2 bases de données ?

Merci pour ces infos
Oui, il faudra faire deux fois quasiment la même procédure.
Il faudra créer deux bases de données (dans l'absolu, on pourrait s'en
sortir avec un seule mais ça compliquerait inutilement la procédure)

La seule différence, outre les noms des bases de données, ce sera
l'emplacement dans lequel déposer le script de migration.

Pour le premier site, le placer dans "http://monsite.com/wp_move_db.php"
et pour le second "http://monsite.com/blog/wp_move_db.php".

julieweb
29/05/2012, 18h02
En fait j'ai changé d'éditeur de texte et ça a marché

En revanche j'ai une autre petite question. J'ai un de mes site wordpress au sein duquel il y a un autre wordpress (ex : site mère>> monsite.com et 2nd >>monsite.com/blog). Les 2 installés via le module wordpress d'OVH.

Faut-il suivre la même procédure pour les récupérer ? faut il créer 2 bases de données ?

Merci pour ces infos

cassiopee
24/05/2012, 11h40
Parfois c'est à la ligne juste en dessous que ce situe le problème.

Ça peut être un guillemet manquant, un point-virgule manquant ou remplacé
par un virgule, un caractère espace mal placé, etc.

Vérifier également que le tout début et la toute fin du script ont bien été
pris par le copier coller.

julieweb
24/05/2012, 11h36
pourtant je viens de vérifier et il y a bien les guillemets, et exactement ce qu'il y a marqué dans mon mail de confirmation...
je vais effacer les données et retaper pour voir

cassiopee
24/05/2012, 11h22
Citation Envoyé par julieweb
Merci pour ce nouveau tuto.
Je viens d'exécuter le script, il y a du mieux mais j'ai cette erreur maintenant :

Parse error: syntax error, unexpected T_VARIABLE in /homez.314/ideedevaz/www/wp_move_db.php on line 36

une idée d'où ça vient ?
C'est vraisemblablement du à une coquille dans la personnalisation du script.

La ligne n°36 correspond à :

Code:
$new_db_host = "";
entre les deux guillemets (qu'il faut conserver) on indique le nom de
la machine où est installée la base, par exemple :

Code:
$new_db_host = "mysql5-1.starter";

julieweb
24/05/2012, 11h18
Merci pour ce nouveau tuto.
Je viens d'exécuter le script, il y a du mieux mais j'ai cette erreur maintenant :

Parse error: syntax error, unexpected T_VARIABLE in /homez.314/ideedevaz/www/wp_move_db.php on line 36

une idée d'où ça vient ?

Gaston_Phone
24/05/2012, 11h11
Citation Envoyé par julieweb
Alors j'ai utilisé text edit sur mac et voici le lien pour voir ce que ça donne : http://ideedevacances.fr/wp_move_db.php
Court extrait de la page affichée pour le lien ci-dessus :
PKo‹·@^Æ2 ''mimetypeapplication/vnd.oasis.opendocument.textPKo‹·@¬P#\!ðb content.xmlíkWÛFöûþŠ¬§2)¶1ï@M“Ò³PØi»i;–ÆfZ½:’ l Ùÿ¢K†ýÇöÞIùA$ùQ8§ø,iwîûÞ¹£¼z}c[Ϻ”ûÌu´Fm]{FÃ5™Ó9Ю.ßU÷´×‡ÿxå¶ÛÌ û¦k„6u‚ªá:ü}½_>=ÐBîì»Ägþ¾ClêïƾëQ'鵯¶ÞsÉ;~p kåî.«½zäíŒm3}I+ÿÌ¢±ÚÛ䤗·3¶¤ªÝÛnÞÎ7¾Um»€uÛ# âÆbÎoÚuxûõz¯×«õ6k.ïÔ/^¼¨‹§)ÀFÚÎ ¹%

cassiopee
24/05/2012, 11h10
Ok, en fait le problème vient de l'éditeur de texte utilisé : ce que l'on voit ici
c'est un fichier compressé (fichier zip pour être précis), si on le décompresse
on trouve plusieurs fichiers créés par l'éditeur de texte :

Code:
  25328 2012-05-23 17:27 content.xml
   4096 2012-05-24 10:47 META-INF/
    444 2012-05-23 17:27 meta.xml
     39 2012-05-23 17:27 mimetype
   2372 2012-05-23 17:27 styles.xml
et "content.xml" contient en réalité le copier-coller du script, encodé en XML.
Le fichier a été sauvegardé en format RTF (Rich Text File) par text edit
au lieu d'un format "texte" tout simple.

Cette situation correspond grosso-modo au deuxième paragraphe
de l'étape 3.

Afin d'y arriver :

1) dans text edit, une fois le copier-coller fait, aller dans le menu "Format"
puis cliquer sur "Convertir au format texte". Confirmer l'action dans la popup.

2) personnaliser le script comme indiqué dans le tuto (Etape 4)

3) dans le menu "Fichier", choisir "Enregistrer sous ..."

4) dans "Encodage format texte", remplacer "Occidental (Mac OS Roman)"
par "Unicode (UTF-8)"

5) dans "Enregistrer sous" taper "wp_move_db.php". Confirmer dans la popup
que l'on veut bien utiliser l'extension ".php" et non l'extension ".txt".

6) Venir déposer ce fichier par FTP dans votre site web (Etape 5)

7) Lancer l'exécution du script (Etape 6)

Et cette fois ça devrait fonctionner

julieweb
24/05/2012, 10h01
Alors j'ai utilisé text edit sur mac et voici le lien pour voir ce que ça donne : http://ideedevacances.fr/wp_move_db.php

Merci pour votre aide

cassiopee
23/05/2012, 17h26
Citation Envoyé par julieweb
Lorsque j'exécute le script j'obtiens un pavé de caractères spéciaux
Une petite copie d'écran serait possible ?

Avec quel éditeur de texte a été créé le script suite au copier-coller
depuis le message du forum ?

julieweb
23/05/2012, 17h22
Bonjour,

J'ai essayé de suivre la procédure mais ça ne marche pas. Lorsque j'exécute le script j'obtiens un pavé de caractères spéciaux et ça ne créé pas de nouveau fichier wp-config-nouveau.php...
Aurais-je sauté une étape ? pourtant j'ai bien l'impression d'avoir suivi tout le tuto...

Ateliermandala
02/02/2012, 21h33
Bon, je vais essayer... J'espère que le problème de lien se résoudra de lui même !

Merci pour vos conseils et votre disponibilité. Ça fait toujours plaisir l'entraide ! Je vous tiens au courant de la suite des événements.

Encore merci.

cassiopee
02/02/2012, 20h48
Citation Envoyé par Ateliermandala
Bon, en fait le problème est un peu plus grave, enfin, au premier abord, pour un novice comme moi...

J'ai essayé de faire la manip de migration, qui a foirée. J'ai donc remis l'ancien fichier wp-config.php. Le blog est de nouveau accessible, les billets sont toujours présents, les pages aussi.

Par contre, dès qu'on veut rentrer dans un billet ou dans une page, la page est introuvable, comme-ci les liens vers la pages et les billets avaient sautés. J'ai fait le test avec un nouveau billet. J'arrive à le créer, à le publier, mais dès que je clique dessus, l'URL est introuvable...

Je désespère, je ne sais pas comment faire. Je suis complètement paumé et ce blog est super important...

Si quelqu'un veut bien m'aider, ça me soulagerai grandement....


Alex.
Hélas, c'est ce que je disais précédemment : le problème n'est pas lié
au script de migration, c'est le site WordPress qui a été piraté
(il y a un code Javascript hostile dès la page d'accueil)

Le plus prudent serait de suivre la manip que propose Gaston_Phone,
à savoir surtout de partir d'un site WordPress tout neuf, de façon à être
certain qu'il ne subsiste pas de code malveillant (au moins dans les fichiers
HTML, Javascript, PHP, etc.)

Après si tu restaures une précédente sauvegarde de la base,
rien ne dit qu'effectivement elle ne contiendra pas une sal*perie

Mais bon, ça ne coûte rien d'essayer (à faire dans un répertoire
différent de l'installation WordPress actuelle).

Gaston_Phone
02/02/2012, 20h17
Je n'ai pas suffisamment d'expérience de WP pour te répondre avec précision.

Origine de ta pollution :
- Soit un de tes scripts a été hacké,
- Soit c'est ta base de données qui a été hackée,
- Soit les DEUX.

Tu peux toujours tenter de :
- Créer une base de données,
- Installer un WP tout neuf dans le dossier /www/xxx,
- Importer la sauvegarde de ta précédente base de données,
- Mettre à jour ton wp-config.php.

-

Ateliermandala
02/02/2012, 20h06
Question :
Si j'installe une nouvelle copie de WP, toute propre, sur une base de donnée créée manuellement via le manager, que j'importe ensuite mon contenu (fichier xml préalablement exporté via le backoffice de WP) et que je copie mon wp-content, lui aussi sauvegardé, vais-je retrouver mon blog fonctionnel tel qu'il était avant ? Ou alors, c'est pas aussi simple que ça ?

Ateliermandala
02/02/2012, 19h14
Oui, avast bloque le site. C'est pour ça que je voulais migrer la base de donnée, pour avoir accès à phpmyadmin, et faire du nettoyage...

Mais là, y'a plus rien qui fonctionne...

Que faire ?

Gaston_Phone
02/02/2012, 19h11
Effectivement ta page http://www.meetonearth.org/feelings-4/ sort en erreur 404.

Mais surtout AVAST détecte une "ADRESSE URL MALVEILLANTE BLOQUEE".

Ateliermandala
02/02/2012, 19h00
http://www.meetonearth.org/feelings-4/

Gaston_Phone
02/02/2012, 18h51
Donne un exemple de nom de page.

Ateliermandala
02/02/2012, 18h48
Bon, en fait le problème est un peu plus grave, enfin, au premier abord, pour un novice comme moi...

J'ai essayé de faire la manip de migration, qui a foirée. J'ai donc remis l'ancien fichier wp-config.php. Le blog est de nouveau accessible, les billets sont toujours présents, les pages aussi.

Par contre, dès qu'on veut rentrer dans un billet ou dans une page, la page est introuvable, comme-ci les liens vers la pages et les billets avaient sautés. J'ai fait le test avec un nouveau billet. J'arrive à le créer, à le publier, mais dès que je clique dessus, l'URL est introuvable...

Je désespère, je ne sais pas comment faire. Je suis complètement paumé et ce blog est super important...

Si quelqu'un veut bien m'aider, ça me soulagerai grandement....


Alex.

cassiopee
01/02/2012, 23h50
Humm, je ne sais pas trop quoi te dire, je viens de faire le test avec la 3.3.1
et aucun souci tout s'est bien déroulé : j'ai bien le fichier de sauvegarde
de l'ancienne base présent. Si je renomme le fichier "wp-config-nouveau.php"
en "wp-config.php", le site Wordpress fonctionne bien avec la nouvelle base
de données.

Si tu actives le mode "debug" du programme, tu devrais avoir un affichage
très proche de celui-ci :

db_name = 1785469-1
db_user = 1785469-1
db_password = Az87FGtM
db_host = sql54.modules
db_charset = utf8
cmd = mysqldump --host='sql54.modules' --user='1785469-1' --password='Az87FGtM' -e --default-character-set='utf8' '1785469-1' | gzip -c > wp_20120201.gz
La sauvegarde (mysqldump) de l'ancienne base s'est bien deroulee.
cmd = gzip -d < wp_20120201.gz | mysql --host='mysql5-1.starter' --user='login_new_base' --password='ggdpQdlM' 'login_new_base'
L'injection des donnees de l'ancienne base dans la nouvelle s'est bien déroulee.
Le fichier 'wp-config-nouveau.php' a bien ete cree.
Il ne vous reste plus qu'a renommer par FTP le fichier 'wp-config-nouveau.php'
en 'wp-config.php' afin de permettre à WordPress d'utiliser la nouvelle base de données


Fin normale du programme.
(aux logins et mots de passe près bien sûr)

1) Quels sont les droits du répertoire d'installation de Wordpress ?

2) Pourquoi disais-tu précédemment "enfin, une install de WP vierge..." ?

cassiopee
01/02/2012, 23h12
Ok, au moment où j'ai écrit ce script, la version installée par le module OVH était la 3.2.

Je vais refaire différents essais et voir ce qui se passe avec une 3.3.1.

Ateliermandala
01/02/2012, 22h56
3.3.1

cassiopee
01/02/2012, 22h49
Quelle est la version de Wordpress ?

Ateliermandala
01/02/2012, 22h28
Alors, voilà ce que j'ai fait :

- Je suis allé dans le manager d'OVH, j'ai créé une nouvelle base.
- J'ai reçu le mail avec les infos (nom de base, identifiant, serveur et mdp)
- J'ai créé un fichier texte, j'ai collé le script en mofiant les champs en rapport avec la (nouvelle) base de donnée
- J'ai uploadé le tout dans le même répertoire que wp-config.php
- J'ai executé le script
- Le message informant de la bonne execution du script c'est affiché
- J'ai renommé le fichier wp-config-nouveau.php en wp-config.php
- Quand je suis retourné sur mon blog, il m'a mis le menu d'installation de WP (renseigner nom admin, mdp, adresse mail, etc.)


J'ai remis en place l'ancien fichier wp-config, vu que ça ne fonctionnait pas. Je ne sais donc pas ce qu'il y avait dans celui qui a été généré.

cassiopee
01/02/2012, 22h23
Citation Envoyé par Ateliermandala
Bonjour à tous,

Je viens d'essayer de faire ma migration d'un WP créé par le module OVH vers une base créée par mes soins.
J'exécute le script et j'ai le bon message qui s'affiche. Apparemment, tout est OK.

Sauf que :
- Je n'ai pas la sauvegarde de ma base de donnée
Il n'y a pas de fichier "wp_20120101.gz" dans l'arborescence Wordpress ?
C'est étonnant. Ceci dit, ce n'est pas indispensable pour que la migration
se fasse correctement.

Ce fichier est en quelque sorte un "cadeau Bonux"

- Quand je retourne à la racine de mon site, il m'ouvre par défaut le fichier d'installation de WP (www.monsite.com/wp-admin/install.php).
Ouh là, je sens un problème tout à fait extérieur au script : en effet
ce dernier ne touche en aucune façon à l'installation Wordpress existante,
il ne fait que créer un nouveau fichier "wp-config.php".

- J'ai vérifié, via phpmyadmin, la base de donnée créée manuellement et elle est vide (enfin, une install de WP vierge...)
Il ne faut pas essayer de faire une installation manuelle de Wordpress afin
de créer la (nouvelle) base vierge. Il faut aller dans le manager du site
web d'OVH et de créer (seulement) la base MySQL.

Est-ce que les fichiers de l'ancien site Wordpress sont toujours en place ?
(fichiers images, fichiers PDF, je ne parle pas des fichiers PHP de Wordpress)

Que contient le fichier "wp-config.php" actuellement ?
(en masquant le mot de passe)

Ateliermandala
01/02/2012, 21h57
Bonjour à tous,

Je viens d'essayer de faire ma migration d'un WP créé par le module OVH vers une base créée par mes soins.
J'exécute le script et j'ai le bon message qui s'affiche. Apparemment, tout est OK.

Sauf que :
- Je n'ai pas la sauvegarde de ma base de donnée
- Quand je retourne à la racine de mon site, il m'ouvre par défaut le fichier d'installation de WP (www.monsite.com/wp-admin/install.php).
- J'ai vérifié, via phpmyadmin, la base de donnée créée manuellement et elle est vide (enfin, une install de WP vierge...)

Que faire ?

Merci d'avance et désolé si ces questions vous paraissent ridicule (suis plus que novice en la matière...)

papa
09/01/2012, 22h17
Arf
Non mais il y a bel et bien un mot de passe dans le fichier config mais il est unique pour chaque installation. Je peux déduire le nom de la base précédente, me semble-t-il en tous cas, mais pas le mot de passe pour s'y connecter. Enfin je ne vois pas comment ?
Mais s'il existe une sauvegarde des fichiers c'est encore plus simple !

RobertG
09/01/2012, 22h11
Faux ! Le mot de passe d'accès à la base de données est dans le fichier de configuration de WP ! Sans lui, pas d'accès à la base...
Un exemple de contenu de fichier wp-config.php :
/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'ezEf0Vj7ULGc');
Et comme je l'ai dit l'autre jour, OVH faisant des sauvegardes régulières des fichiers, tu as accès à celles-ci par FTP et tu peux donc récupérer les infos d'accès à la base de données.
Par contre, maintenant que tu as fait une réinstallation après suppression du module, il y a toutes chances que la base ait été vidée, et si celle recréée porte le même nom qu'avant, tu n'y retrouveras pas les données que tu y avais mises.

papa
09/01/2012, 21h39
Bonsoir
Alors j'ai tenté une ultime ruse pour récupérer ces articles qui me manquaient : J'ai RE installé le module WP d'OVH pour examiner le fichier config créé. Ne rieez pas ça fonctionne, sauf que de toute façon, quoiqu'il en soit, si je peux déduire le nom de la base (j'ai créé plusieurs insall via module pour voir si la création des noms était logiques [oui]), quoiqu'il en soit donc, je ne peux deviner le mot de passe.
Donc voilà c'est réglé.
Merci à tous.

RobertG
05/01/2012, 13h57
Effectivement, je n'avais pas vu que wp-config avait été effacé.
Il faut éventuellement aller voir dans un snapshot datant d'entre l'installation et cette tentative de mise à jour où il a été effacé.

cassiopee
05/01/2012, 11h42
Oui mais justement, il a effacé le fichier "wp-config.php"

Peut-être que c'est indiqué quelque part dans le manager du site web d'OVH ?
Mais pas sûr du tout.

RobertG
05/01/2012, 11h15
le mail d'OVH est très succinct et ne donne qu'un login et un pass, pas de nom de base
En effet, tu ne reçois que l'identifiant et le mot de passe d'administration du site. A toi de chercher dans le fichier wp-config.php du site les différentes infos concernant la base utilisée.

papa
05/01/2012, 10h50
En effet, en si peu de temps il y avait peu d'articles nouveaux (j'avais importé les précédents depuis un autre hébergement) mais il y en avait et je souhaitais retrouver précisément ceux-là, publiés dans ce court intervalle, et dont je n'ai pas la trace car ce n'est pas mon site.
Bref, tant pis, merci de votre aide et de votre patience.

cassiopee
05/01/2012, 09h58
Si l'installation de WordPress faite via le module OVH ne date que d'hier,
le plus simple est de la laisser tomber, de ne plus l'utiliser (sa base ne sera plus
utilisée ni comptabilisée) et de simplement (re)faire une installation WordPress
manuelle avec :

- un préfixe distinct pour ses tables
- un répertoire spécifique pour son installation

afin de la distinguer de la première installation manuelle de WordPress
(celle faite à la racine).

Dans ce cas de figure, mon script ne servirait à rien.

Mais, si j'ai bien compris, c'est la procédure que vous avez déjà suivi
en essayant de faire une "mise à jour" de WordPress.

Vraisemblablement vous avez en fait créé un nouveau jeu de tables
(à défaut d'une nouvelle base), lequel est totalement indépendant de la base
créée par le module OVH mais ce n'est pas vraiment gênant dans la mesure
où il n'y a pas de données historiques à reprendre en provenance de la base
créée par le module OVH.

papa
05/01/2012, 00h56
Oh ! merci beaucoup de votre réponse si rapide !

Oui j'ai été un peu confus :

À la racine il y a une installation à la mano de WordPress, qui fonctionne et que j'ai l'habitude de manipuler.

Dans un dossier "à côté" il y a un autre install de WP qui était celle créée via le module OVH pas plus tard qu'hier ou avant hier soir et que j'ai souhaité mettre à jour à la main sans réaliser que celle-ci ne disposait d'entrées dans ma base sql.

Comprenant cela je cherche un moyen de migrer et trouve votre outil. Je réalise donc tout de même la mise à jour des fichiers de WP : elle me permet de créer de nouveaux champs dans ma base sql, avec un préfixe, et donc dédiés à cette install précise.

Ainsi j'aurais peut-être pu utiliser votre script, mais le mail d'OVH est très succinct et ne donne qu'un login et un pass, pas de nom de base. Me voilà donc coincé.

Suis-je plus clair ?

cassiopee
05/01/2012, 00h26
Citation Envoyé par papa
2. il y a déjà un wordpress installé à la racine et celui que je veux
migrer est dans un autre dossier à la racine, mais qui ne s'appelle
pas wordpress
Ce n'est pas un problème : si le répertoire d'installation du WordPress
à migrer est "tutu", il suffit d'y placer le script de migration et ensuite
de l'exécuter via :

http://www.domaine.fr/tutu/wp_move_db.php

le nouveau "wp-config.php" sera créé dans le répertoire "tutu".

Toute la manipulation est donc indépendante du WordPress
installé à la racine et ne l'affectera pas du tout.

Donc pour corser le tout, j'ai fini la mise à jour de worpdress,
malgré tout, pour pouvoir obtenir la création de nouveaux champs dans
ma base de données ... car je ne dispose que d'une seule bd, oui.
Mais de quelle mise à jour de Wordpress parle-t'on ?
Celle du second site (celui à la racine) ?

Parce qu'a priori le script de mise à jour intégré de Wordpress
n'a pas accès à la base créée par module OVH (d'où le script
que j'ai créé).

comment orienter la migration vers les bons champs de la bd (ils disposent tout de même d'un préfixe propre ! )
Cf plus bas.

Il faut faire le point sur la ou les bases de données existantes :

- normalement il y en a une première, créée par le module OVH.

- éventuellement une deuxième, créée "manuellement" pour le second
site WordPress (si je suppose que ce second site WordPress a été créé
manuellement et non par module OVH ?)

Les bases de données créées par module OVH ne sont pas comptabilisées
donc normalement il n'y a que la seconde base "normale" qui serait
comptée ?

Est-ce bien la situation actuelle ?

Mmmm, je comprends bien qu'on ne peut pas demander la lune : sans le
config.php d'origine on n'arrivera à rien n'est-ce pas ?
Le "wp-config.php" d'origine n'est utile que pour obtenir les codes
d'accès (nom d'hôte, login, mot de passe et nom de la base) créés par le module OVH.

Donc si vous avez ces infos quelque part ailleurs (par exemple
dans le mail reçu lors de la création du site Wordpress par module
OVH), on pourrait les intégrer dans le script.


Malheureusement ce qui risque de coincer c'est le fait d'avoir à intégrer deux installations
WordPress dans une seule base de données.

Normalement cela suppose que chaque installation utilise un préfixe pour
les tables (préfixe unique pour chaque installation WordPress) or le script
lui ne fait que reprendre la base créée par le module OVH, avec des noms
de tables inchangés, afin de pouvoir l'injecter dans la nouvelle base.

Petit espoir : si on peut avoir dans la base de données :

- une série de tables WordPress sans aucun préfixe
- une série de tables WordPress avec un préfixe

(au lieu d'avoir un préfixe unique pour chacune des deux installations WordPress)

Alors ce qu'il faudrait faire (si c'est encore possible) :

1) faire une simple migration "base créée par module OVH" => base "normale"
à l'aide de mon script, donc sans aucun préfixe pour les noms des tables.

2) avoir une seconde installation "manuelle" de WordPress (correspondant
au site actuellement à la racine), en utilisant tel ou tel préfixe.

3) faire la mise à jour de WordPress pour le premier et/ou le second site web.

papa
04/01/2012, 23h14
Bonsoir,

J'espère pouvoir utiliser votre script mais ce ne serait pas drôle sans un petit détail technique (deux en réalité):

1. je mettais à jour WP et j'avais supprimé tous les dossiers et fichiers, sauf wp-content (oui c'est un peu brutal) : donc il n'y a plus de fichier config.php du tout (et bien sûr les gens comme moi ne font pas de sauvegarde ...)

2. il y a déjà un wordpress installé à la racine et celui que je veux migrer est dans un autre dossier à la racine, mais qui ne s'appelle pas wordpress

J'ai fait toutes ces erreurs avant de chercher votre outil ...

Donc pour corser le tout, j'ai fini la mise à jour de worpdress, malgré tout, pour pouvoir obtenir la création de nouveaux champs dans ma base de données ... car je ne dispose que d'une seule bd, oui.

Maintenant, vous voyez venir la question :
comment orienter la migration vers les bons champs de la bd (ils disposent tout de même d'un préfixe propre ! )

Et aussi j'aimerais bien un mars.
S'il vous plait.
Oui, bon ...
Merci en tout cas


//////////////////////////
Edit après survol du script...

Mmmm, je comprends bien qu'on ne peut pas demander la lune : sans le config.php d'origine on n'arrivera à rien n'est-ce pas ?
D'accord vous pouvez rire

esterets
31/12/2011, 16h45
merci pour cette aide

cassiopee
22/12/2011, 10h04
Merci

atelierajwan
22/12/2011, 00h27
Un tout grand merci, cassiopee, pour ce tuto vraiment très précis. Il m'a donné la confiance pour me lancer.
C'est fait, ça a marché, et j'en suis très contente

Fran

cassiopee
06/12/2011, 16h24
Cool, content pour toi

Jepigi
06/12/2011, 16h20
Un GRAND merci Cassiopee
Le transfert de base s'est déroulé sans encombre d'une 50Mo vers une 500Mo !

Jepigi
06/12/2011, 15h49
message supprimé erreur de ma part dans la manip - je recommence...

cassiopee
06/12/2011, 15h35
Voilà, j'ai mis à jour le script, ça devrait passer normalement.

cassiopee
06/12/2011, 15h14
Une solution rapide consiste à supprimer le commentaire :

Code:
// 99% chance you won't need to change this value
Je vais modifier par la suite l'expression régulière du script afin qu'il gère ce cas.

Jepigi
06/12/2011, 14h00
Citation Envoyé par cassiopee
En changeant bien sûr les logins/mot de passe, quelles sont les 50 premières
lignes du fichier "wp-config.php" en question ?
Merci de ce retour Cassiopee
la version de WP est 2,5 (oui je sais ça date un peu, c'est notamment pour cela que je veux migrer la base...)

le contenu du WP-CONFIG :

Code:

Je précise enfin que je viens de tenter le script dispo sur http://guide.ovh.com/importBaseMySQL qui a marché mais le site plante quand je migre vers la nouvelle base. Il semble que des plugins ne fonctionnent plus...

cassiopee
06/12/2011, 13h46
Citation Envoyé par Jepigi
dans mon wp-config.php le HOST est 'sql2.modules', cela peut il venir de là ?
Merci par avance
Non car c'est justement c'est la chaîne "modules" que le script recherche
(et il refuse d'aller plus loin s'il ne la trouve pas).

En revanche, il doit y avoir une différence de format dans le fichier "wp-config.php"
(peut-être une version de WordPress plus ancienne ?).

En changeant bien sûr les logins/mot de passe, quelles sont les 50 premières
lignes du fichier "wp-config.php" en question ?

Jepigi
06/12/2011, 12h44
Bonjour et merci pour ce script
me concernant il affiche ce message :
"Attention, votre fichier 'wp-config.php' semble ne pas utiliser le module OVH WordPress....etc."
Je précise que je n'ai pas lancé le script précédemment
et que les informations de mon wp-config.php sont bien celles de l'ancienne base
dans mon wp-config.php le HOST est 'sql2.modules', cela peut il venir de là ?
Merci par avance

cassiopee
14/11/2011, 20h35
Citation Envoyé par Bojan
Bref, j'ai lu tout ce qui a été indiqué ci-dessus, et je me pose une question.
Si je respecte la procédure indiquée par Cassiopee, pourrai-je faire marche-arrière si jamais, pour une raison quelconque, ça ne fonctionnait pas?
Est-ce que si je fais une fausse manip, je pourrai retrouver ma config initiale en supprimant le "wp_move_db.php" créé, et en remettant l'ancien "wp-config"?
J'arrive après la bataille mais pour les futurs lecteurs : oui, il suffit
de réutiliser l'ancien "wp-config.php" pour revenir en arrière, c'est à dire
utiliser à nouveau l'ancienne base, celle créée par le module OVH Wordpress.

Le script de migration ne change absolument rien à l'ancienne base,
il est essentiellement centré sur la création de la nouvelle base
et l'adaptation du fichier "wp-config.php" dans ce sens.


Pour ce qui est de passer d'un Wordpress installé par le module OVH
à un SQL privé, le script ne servira à rien car ce n'est pas son but
(à la limite pour avoir une sauvegarde de sa base initiale).

Il permet de passer d'un Wordpress installé par module OVH
à un Wordpress utilisant une base MySQL "normale" en mutualisé.

Bojan
10/11/2011, 22h00
Bon. Mon problème semble résolu.
Je me suis tout simplement servi des infos de connexion à la bdd créée automatiquement par le module d'ovh (présents dans le wp-config), pour importer la base en question sur mon sql privé.
Ca semble fonctionner.

Bojan
10/11/2011, 21h22
Citation Envoyé par Gaston_Phone
@ Bojan, c'est faisable mais ce sera compliqué pour un débutant.
Merci.
Ca veut dire qu'en cas de souci, si je vires le "wp_move_db.php" qui sera créé lors de la manip et que je remets l'ancien "wp-config", il y aura d'autres changements à faire pour faire marche-arrière?

Gaston_Phone
10/11/2011, 21h14
@ Bojan, c'est faisable mais ce sera compliqué pour un débutant.

Bojan
10/11/2011, 20h00
Bonjour et merci pour ces précieux éclaircissements. J'ai moi-même installé wordpress par l'intermédiaire du module OVH, et je m'en mords un peu les doigts.

Je viens de prendre un sql privé car la base Mysql de mon site est vraiment trop limitée, et la moitié du temps, elle renvoie des messages d'erreurs dues à un grand nombre de connexions.

Bref, j'ai lu tout ce qui a été indiqué ci-dessus, et je me pose une question.
Si je respecte la procédure indiquée par Cassiopee, pourrai-je faire marche-arrière si jamais, pour une raison quelconque, ça ne fonctionnait pas?
Est-ce que si je fais une fausse manip, je pourrai retrouver ma config initiale en supprimant le "wp_move_db.php" créé, et en remettant l'ancien "wp-config"?

Je suis assez désemparé, car novice en matière de gestion de BDD, et le service technique d'ovh tarde un peu à me répondre.

Merci par avance.

xantof
12/10/2011, 07h54
à tous les 3 ci-dessus :

J'apprécie que vous explicitiez ces zones d'incertitudes qui autrement continueraient à alimenter nos frustrations...

Bref : merci !

Stephan

RobertG
09/10/2011, 18h52
Je ne suis pas sûr qu'une base de données créée par un module d'OVH
soit comptabilisée ? ça dépend peut-être de l'offre dont on dispose.
Ces bases de données sont "en plus". A une période, il m'a semblé qu'une seule base supplémentaire était attribuée quel que soit le nombre de modules, mais lors de tests il y a quelques semaines, chaque module avait sa propre base (sur un pack où il n'y avait plus de base disponible).

cassiopee
09/10/2011, 18h47
Citation Envoyé par xantof
Bonjour et merci pour ce tuto qui m'a bien servi.
Content de le savoir

Mais qu'advient-il de la première base créée par l'install en 1 clic et qui reste invisible à PhpMyAdmin?
Elle reste en place, simplement elle n'est plus utilisée par WordPress.

Comment fait-on pour récupérer l'espace quand on a droit à 5 bases de données?
Je ne suis pas sûr qu'une base de données créée par un module d'OVH
soit comptabilisée ? ça dépend peut-être de l'offre dont on dispose.
(si quelqu'un a des précisions à ce sujet, qu'il n'hésite pas)

Si jamais c'est compté, alors il faut supprimer le module (dans le manager
d'OVH, dans "Hébergement", "Gestion des modules", puis cliquer sur la petite
croix rouge tout à fait à droite dans la ligne correspondant au module
WordPress installé).

Néanmoins la supression du module va entrainer deux choses :

1) la suppression de (l'ancienne) base de données, ce qui est le but ici

2) la suppression des fichiers du site web (script php, images, etc.)

Afin d'éviter de perdre son site web, il faut donc impérativement,
avant de procéder à cette suppression du module, avoir recopié
intégralement tous les fichiers dans un répertoire temporaire dans le serveur
d'OVH.

Cette recopie est à faire par FTP (à l'aide d'un outil comme FileZilla
par exemple). On créé un répertoire temporaire "wp_tmp" mettons,
on y recopie tous les fichiers du site actuel.

Une fois la suppression du module effectuée (avec délai de 5 - 10 minutes dixit
OVH, ce n'est donc pas instantané), on re-créé le répertoire d'origine
du site (mettons "WordPress3" par exemple) et on y fait la recopie inverse
depuis le répertoire temporaire "wp_tmp" de tous les fichiers du site web.

Procédure alternative : télécharger tous les fichiers du site web chez soi
puis supprimer le module et enfin re-uploader tous les fichiers après avoir
re-créé le répertoire de départ, "WordPress3" par exemple.

Gaston_Phone
09/10/2011, 18h44
Tu laisses la première "base créée par l'install en 1 clic" mourir de vieillesse et tu ne t'en occupes plus.
De toute cette façon, cette base n'est pas décomptée du nombres de bases que tu as commandées.

xantof
09/10/2011, 18h28
Bonjour et merci pour ce tuto qui m'a bien servi.

Mais qu'advient-il de la première base créée par l'install en 1 clic et qui reste invisible à PhpMyAdmin?

Comment fait-on pour récupérer l'espace quand on a droit à 5 bases de données?

Stephan

cassiopee
30/09/2011, 13h52
La création de blogs et autres sites web avec les modules d'OVH a l'avantage
de se faire en quelques clics de souris mais l'inconvénient d'entrainer
une certaine "lourdeur" voire carrément des blocages, notamment lorsque
l'on veut faire évoluer son site (mise à jour automatique de WordPress)
ou encore ajouter des plugins et autres add-ons.

Le but de la manipulation décrite ici est de passer facilement d'une base
MySQL créée par module OVH WordPress et relativement inaccessible
vers une base MySQL "normale", notamment accessible par PhpMyAdmin
et autres outils classiques.

En dehors du fichier "wp-config.php", il n'y a aucune modification à faire
dans les fichiers du site web (fichiers PHP, Javascript, images, feuilles
de style, etc.)

Ne pas se fier à la relative longueur de ce texte, si tout se passe bien,
vous en avez pour moins de 5 minutes

Lire l'ensemble du texte avant de se lancer.

Etape 1 : créer une nouvelle base de données dans le manager du site web
d'OVH (dans "Hébergement" / "Gestion de MySQL" / "Nouvelle base MySQL")

Etape 2 : attendre l'email d'OVH confirmant la bonne création de cette base
et noter les identifiants de connexion à celle-ci (login, mot de passe, etc.)

Si le script signale un problème d'accès à la nouvelle base et que vous êtes
sûr et certain d'utiliser le bon nom d'hôte, de base, de login et de mot de passe,
vous pouvez patienter un peu (disons 1 heure ou 2) ou sinon vous pouvez essayer
de réinitialiser le mot de passe d'accès à la base.

Etape 3 : Faire un copier-coller du script PHP qui suit et l'enregistrer dans
votre PC domicile/bureau sous un nom tel que "wp_move_db.php".
(vous pouvez l'appeler comme bon vous semble mais l'extension ".php"
est obligatoire)

Le faire via un éditeur de texte ultra-simple du genre le "bloc-notes" sous Windows.
Ne pas utiliser de traitement de texte type "Microsoft Word" ou équivalent
qui risquerait d'introduire des caractères parasites invisibles.

Si vous utilisez "text edit" sous MacOS, attention au format du fichier,
cf le message n°53 et suivant de ce topic.

Etape 4 : Modifier au début de ce fichier les informations de connexion
à la nouvelle base MySQL (le script doit trouver tout seul les informations
de connexion à l'ancienne base) que vous venez de créer à l'étape 1.

Etape 5 : Une fois le script mis à jour, le transférer par FTP (avec FileZilla
par exemple) et le placer dans le même répertoire que le fichier "wp-config.php"
de votre installation WordPress (par exemple dans le répertoire "WordPress3")

Etape 6 : lancer l'exécution du script en tapant son adresse dans votre navigateur web :

Code:
http://www.votre_site.fr/WordPress3/wp_move_db.php
ou encore

Code:
http://www.votre_site.fr/wp_move_db.php
selon l'endroit où se trouve votre installation WordPress.

Le script devrait s'exécuter en quelques secondes et vous afficher
"Fin normale du programme" si tout s'est bien déroulé.

Etape 7 : par défaut, le script se contente de créer un nouveau
fichier "wp-config-nouveau.php" contenant les informations de connexion
à votre nouvelle base WordPress et laisse intact votre ancien "wp-config.php".

Vous avez le choix :

- soit de renommer manuellement (par FTP) ce fichier en "wp-config.php"
(en effaçant/renommant au préalable l'ancien)

- soit de laisser faire cette modification par le script PHP, dans ce cas placer
la variable "$rename" à 1 au début du script. Le fichier courant "wp-config.php"
sera sauvegardé sous le nom "wp-config-ancien.php".

Une fois le fichier "wp-config.php" mis à jour, votre installation WordPress
utilisera votre nouvelle base de données et non plus l'ancienne.
La migration est alors terminée


Etape optionnelle : le script sauvegarde l'ancienne base dans un fichier
SQL compressé, "wp_20110930.gz" par exemple (format "wp_YYYYMMDD.gz").
Une fois la migration terminée, vous pouvez effacer (par FTP) ce fichier
ou encore le recopier localement afin d'en avoir une sauvegarde.


Précisions : le script PHP de migration ne peut en aucune façon détruire/modifier
votre ancienne base de données (il ne fait que la lire).

Par précaution, avant de lancer l'exécution du script, faite une copie locale
(par FTP) de votre ancien fichier "wp-config.php" afin d'en garder une trace
juste au cas où.

Code PHP:

// --------------------------------------------------

/*
   AVANT d'exécuter ce script, vous devez, impérativement, avoir créé
   une nouvelle base de données pour WordPress via le manager
   du site web d'OVH.

   Une fois la base créée, vous aller recevoir un email d'OVH
   intitulé "[MySQL] La base MySQL ...". A l'intérieur se trouvent
   les informations de connexion que vous allez devoir reprendre
   dans ce script :
      
     Serveur        : $new_db_host
     Utilisateur    : $new_db_user
     Nom de la base : $new_db_name
     Mot de passe   : $new_db_password

   Par exemple, si dans l'email vous avez :

     Serveur        : mysql5-1.starter
     Utilisateur    : mon_login
     Nom de la base : mabase
     Mot de passe   : XYZ1234
     
   cela donnera dans ce script :
   
    $new_db_host = "mysql5-1.starter";
    $new_db_user = "mon_login";
    $new_db_name = "mabase";                
    $new_db_password = "XYZ1234";                
       
*/

    
$new_db_host "";
    
$new_db_user "";
    
$new_db_name "";
    
$new_db_password "";

    
// ----------------------------------
    
    
$rename 0;        // Valeurs possibles : 0 ou 1. 1 signifiant que le programme va modifier les informations
                            // de connexion dans le fichier "wp-config.php" afin que WordPress ne se connecte plus
                            // à l'ancienne base mais à la nouvelle base.
                            
                            // 0 signifie que ce script va seulement créer le nouveau fichier "wp-config-nouveau.php",
                            // il ne vous restera plus qu'à le renommer manuellement par FTP en "wp-config.php" afin
                            // de permettre à WordPress d'utiliser la nouvelle base.

                            
    
$db_charset "";     // Valeurs possibles : 'utf8' ou 'latin1', à ne changer que si les caractères accentués
                            // de la nouvelle base sont incorrects
                            
    
$DEBUG 0;        // Valeurs possibles 0 ou 1, afin d'afficher davantage d'informations lors de l'exécution
    
// **********************************************************************************************

function GetCharset ($db,$db_name)
{
        
$cmd "SHOW TABLE STATUS FROM `$db_name` LIKE 'wp_users'";
        
$result=mysql_query ($cmd,$db);
        
$myrow=mysql_fetch_array($result);

        
$db_charset "utf8"// Par défaut, on utilise l'Unicode
            
        
if ($myrow)
        {
            if (
$myrow["Collation"] == "utf8_general_ci")
            {
                
$db_charset "utf8";
            }
            else
            {
                
$db_charset "latin1";
            }
        }
    
    return (
$db_charset);
}

function 
my_exec ($cmd$error_msg)
{
    global 
$DEBUG;
    
       if (
$DEBUG)
       {
           print 
"cmd = $cmd
\n"
;
       }
       
       
$statut system($cmd);
       
       if (
$statut === FALSE)
       {
           print 
"
"
.$error_msg;
           exit;
       }
}

// **********************************************************************************************

    // --------------------------------------------------------------
    // Récupération des données de connexion à l'ancienne base WordPress
    // dans le fichier 'wp-config.php'
    
    
$tab file("wp-config.php");
    
    if (
$tab === FALSE)
    {
        print 
"Impossible de lire le fichier 'wp-config.php'
\n"
;
        print 
"Ce script PHP doit être dans le même répertoire que le fichier 'wp-config.php' de WordPress .
\n"
;
        exit;
    }
    
    
$db_name ="";
    
$db_host "";
    
$db_user "";
    
$db_password "";
    
    for (
$i=0$i<50$i++)
    {
        
$ligne $tab[$i];
        
        if (
strpos($ligne,'define(\'DB_NAME') !== FALSE)
        {
            
preg_match('/(.*)\'(.*)\'(.*)\'(.*)\'(.*)/'$ligne$data);
            
$db_name $data[4];
        }

        if (
strpos($ligne,'define(\'DB_USER') !== FALSE)
        {
            
preg_match('/(.*)\'(.*)\'(.*)\'(.*)\'(.*)/'$ligne$data);
            
$db_user $data[4];
        }

        if (
strpos($ligne,'define(\'DB_PASSWORD') !== FALSE)
        {
            
preg_match('/(.*)\'(.*)\'(.*)\'(.*)\'(.*)/'$ligne$data);
            
$db_password $data[4];
        }

        if (
strpos($ligne,'define(\'DB_HOST') !== FALSE)
        {
            
preg_match('/(.*)\'(.*)\'(.*)\'(.*)\'(.*)/U'$ligne$data);
            
$db_host $data[4];
        }
    }

    if ((
$db_name == "") || ($db_user == "") || ($db_password == "") || ($db_host == ""))    
    {
        print 
"Probleme lors de la recuperation des donnees de connexion depuis le fichier 'wp-config.php'";
        exit;
    }

    if (
strpos ($db_host"modules") === FALSE)
    {
        print 
"Attention, votre fichier 'wp-config.php' semble ne pas utiliser le module OVH WordPress.

\n"
;
        
        print 
"Si vous avez deja execute une premiere fois ce script, verifiez que votre fichier
\n"
;
        print 
"'wp-config.php' contient bien les informations de connexion a votre ancienne base de donnees
\n"
;
        print 
"et non celles de la nouvelle base.
\n"
;
        
        exit;
    }

    
// ----------------------------------------------------------------
    // Connexion a la nouvelle base de données
    // Seulement dans le but de s'assurer que les paramètres de connexion sont les bons
    
    
$db mysql_connect($new_db_host$new_db_user$new_db_password);
    
    if (
$db === FALSE
    {
            print 
"Connexion impossible à la nouvelle base de donnees : ".mysql_error();
            print 
"Verifiez bien vos informations : nom d'hote, login et surtout mot de passe
\n"
;            
            exit;
    }
    else
    {
            
// On teste seulement la connexion a la nouvelle base de donnee
            
            
$statut mysql_select_db ($new_db_name$db);
    
        if (
$statut === FALSE
        {
               print 
"Impossible de selectionner la nouvelle base de donnees : ".mysql_error();
               print 
"Verifiez bien vos informations : nom de base
\n"
;
               
mysql_close ($db);
               exit;
        }    
        else
        {
               
mysql_close($db);
            }
    }

    
// ----------------------------------------------------------------
    // Connexion a l'ancienne base de données (créee par le module OVH)
    
    
$db mysql_connect($db_host$db_user$db_password);
    
    if (
$db === FALSE
    {
            print 
"Connexion impossible à l'ancienne base de donnees : ".mysql_error();
            exit;
    }

    
$statut mysql_select_db ($db_name$db);
    
    if (
$statut === FALSE
    {
           print 
"Impossible de selectionner l'ancienne base de donnees : ".mysql_error();
           
mysql_close ($db);
           exit;
    }    
    
    
$db_charset GetCharset ($db,$db_name);

    if (
$DEBUG)
    {    
        print 
"db_name = $db_name
\n"
;    
        print 
"db_user = $db_user
\n"
;
        print 
"db_password = $db_password
\n"
;
        print 
"db_host = $db_host
\n"
;
        print 
"db_charset = $db_charset
\n"
;
    }
    
    
// ------------------------------------------------------------------
    // Sauvegarde de l'ancienne base de données (créee par le module OVH)
    
    
$date_actuelle date ("Ymd",time());
    
$backup_filename "wp_".$date_actuelle.".gz";

    
$cmd "mysqldump --host='$db_host' --user='$db_user' --password='$db_password' -e --default-character-set='$db_charset' '$db_name' | gzip -c > $backup_filename ";
    
my_exec ($cmd"Erreur lors de l'execution du mysqldump"); 
 
    
mysql_close ($db); 

    print 
"La sauvegarde (mysqldump) de l'ancienne base s'est bien deroulee.
\n"
;
    
    
// --------------------------------------------------------------
     // Injection des données de l'ancienne base dans la nouvelle base

     
if (($new_db_name == "") || ($new_db_host == "") || ($new_db_password == "") || ($new_db_user == ""))
     {
         print 
"
Erreur : vous devez indiquer les informations de connexion à la nouvelle base de donnees,
\n"
;
         print 
"Cf les explications en commentaires au début de ce script.
\n"
;
         exit;
     }
     
    
$cmd "gzip -d < $backup_filename | mysql --host='$new_db_host' --user='$new_db_user' --password='$new_db_password' '$new_db_name'";
    
my_exec ($cmd"Erreur lors de l'injection des donnees dans la nouvelle base"); 

    print 
"L'injection des donnees de l'ancienne base dans la nouvelle s'est bien déroulee.
\n"
;
    
    
// --------------------------------------------------------------------------
    // On va créer un nouveau fichier "wp-config.php" contenant les informations
    // de connexion à la nouvelle base de données.
    
    
$fp fopen ("wp-config-nouveau.php","w");
    
    if (!
$fp)
    {
        print 
"
Impossible d'ouvrir en ecriture le nouveau fichier 'wp-config-nouveau.php'
\n"
;
        exit;
    }
    
    foreach (
$tab as $ligne)
    {
        if (
strpos($ligne,'define(\'DB_NAME') !== FALSE)
        {
            
$ligne "define('DB_NAME', '".$new_db_name."');\n";
        }

        if (
strpos($ligne,'define(\'DB_USER') !== FALSE)
        {
            
$ligne "define('DB_USER', '".$new_db_user."');\n";
        }

        if (
strpos($ligne,'define(\'DB_PASSWORD') !== FALSE)
        {
            
$ligne "define('DB_PASSWORD', '".$new_db_password."');\n";
        }

        if (
strpos($ligne,'define(\'DB_HOST') !== FALSE)
        {
            
$ligne "define('DB_HOST', '".$new_db_host."');\n";
        }
        
        
fwrite ($fp$ligne);
    }
    
    
fclose ($fp);
    
    print 
"Le fichier 'wp-config-nouveau.php' a bien ete cree.
\n"
;

    if (
$rename)
    {
        
my_exec ("mv wp-config.php wp-config-ancien.php""Erreur lors du renommage de l'ancien fichier 'wp-config.php'");
        
my_exec ("cp wp-config-nouveau.php wp-config.php""Erreur lors du renommage du nouveau fichier 'wp-config.php'");
        
        print 
"Le fichier 'wp-config-nouveau.php' a bien ete renomme en 'wp-config.php'
\n"
;
        print 
"Vous pouvez desormais utiliser WordPress avec votre nouvelle base de donnees.
\n"
;
    }
    else
    {
        print 
"Il ne vous reste plus qu'a renommer par FTP le fichier 'wp-config-nouveau.php'
\n"
;
        print 
"en 'wp-config.php' afin de permettre à WordPress d'utiliser la nouvelle base de données
\n"
;
    }

    print 
"

Fin normale du programme.
\n"
;
?>
Edit 06/XII/2011 : Adaptation pour Wordpress 2.5
Edit 24/V/2012 : Ajout d'informations pour Text Edit sous MacOS
Edit 30/V/2012 : Renforcement des contrôles sur les paramètres d'accès à la nouvelle base
Edit 18/XI/2012 : Ajout d'informations en cas de souci d'accès à la nouvelle base