Je désire changer d'hébergement et donc installer les données de l'ancien hébergement sur le nouveau.
J'ai une base de données MySQL que je gère à partir de phpMyAdmin.
J'ai fait un export de deux façons.
1 - à partir de phpMyAdmin avec la fonction export.
J'ai obtenu un fichier .sql du type :
---------------------------------------------------
# phpMyAdmin SQL Dump
# version 2.5.7
# http://www.phpmyadmin.net
#
# Serveur: sql6
# Généré le : Mardi 28 Mars 2006 à 14:44
# Version du serveur: 4.0.17
# Version de PHP: 4.4.2
#
# Base de données: `nom_base`
#
# --------------------------------------------------------
#
# Structure de la table `T_Broch`
#
# Création: Mardi 24 Mai 2005 à 14:55
# Dernière modification: Mardi 28 Mars 2006 à 14:40
# Dernière vérification: Mercredi 22 Février 2006 à 12:55
#
DROP TABLE IF EXISTS `T_Broch`;
CREATE TABLE `T_Broch` (
......... etc...
) TYPE=MyISAM AUTO_INCREMENT=5212 ;
#
# Contenu de la table `T_Broch`
#
INSERT DELAYED INTO `T_Broch` (....
..
les valeurs
etc...
Ceci pour l'ensembles des tables.
J'ai donc l'ensemble de mes tables et les valeurs dans mon fichier .sql
Jusqu'ici, tout va bien.
2- J'ai fait un dump à partir de la fonction que propose OVH (Sauvegarde de la base de données)
J'ai obtenu un fichier légèrement différent.
--------------------------------
-- MySQL dump 9.10
--
-- Host: localhost Database: nombase
-- ------------------------------------------------------
-- Server version 4.0.17-standard-log
--
-- Table structure for table `T_Broch`
--
CREATE TABLE T_Broch ( ...
...)TYPE=MyISAM;
INSERT INTO T_Broch VALUES (4385......
INSERT INTO T_Broch VALUES (3230...
--------------------
Ceci pour toutes les tables.
La différence qu'il y a entre les deux fichiers, est que la syntaxe sql est un peu différente au niveau des insert.
Il y a un insert pour chaque ligne dans le deuxième cas alors que dans le premier cas, la syntaxe de l'insert est du type classique.
Ma première question est pourquoi y a t-il cette différence ?
Concernant l'insertion.
Il est indiqué dans la donc d'OVH, qu'il faut écrire le script suivant et l'exécuter.
----
En PHP (importbase.php) :
<?
echo "Votre base est en cours de restauration.......n<br>";
system("cat nom_de_la_base.sql | mysql --host=serveur_sql --user=nom_de_la_base --password=mot_de_passe nom_de_la_base");
echo "C'est fini. Votre base est en place sur cet hébergement.";
?>
------
Evidement ca ne marche pas. Ca serait trop facile.
Ma deuxième question est donc : Quel est le script qu'il convient d'écrire afin d'éxécuter le fichier .sql créé lors de l'import ?
Que signifie "cat"
Merci pour vos réponses
J'ai la réponse à ma question.
Il suffit d'utiliser le requêter de phpMyAdmin en cliquant sur SQL, puis en faisant un import du fichier ou en faisant un copier-coller du contenu du fichier.
Le problème que je rencontre actuellement est l'erreur suivante :
Fatal error: Maximum execution time of 10 seconds exceeded in /home/ovh/www/phpMyadmin/libraries/sqlparser.lib.php on line 307
Mon fichier n'est pourtant pas lourd et je n'ai pas tant que ca de lignes dans la table (870 enregistrements).
Maintenant je comprend mieux la différence entre les deux types de syntaxe INSERT.
La première ne permet pas de faire des inserts en plusieurs fois, alors que la deuxième permet de le faire. C'est ce que j'ai fait pour pouvoir réinsérer toutes mes données dans les tables.
J'ai coupé mes 870 lignes en deux insertions.
Commentaires