Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2006, 23h58   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 54
Points : 17
Points : 17
Par défaut Import à partir du Dump d'une bdd

Salut

Je galere pour importer une base SQL sur mon poste à la maison.
Le fichier nom_fichier.sql issu de la sauvegarde commence par "-- MySQL dump 10.9
--
-- Host:"....
Est ce que c'est bien le bon fichier?
J'ai suivi les indications sur le net et dans la faq et essayé:

Methode 1:
- crée sur phpmyadmin une nouvelle base du même nom : ma_base
- une fois dans ma_base, j'entre dans la fenetre SQL :
Code :
> mysql ma_base < nom_fichier
>> il me sort un message d'erreur de syntaxe

Methode 2:
- crée sur phpmyadmin une nouvelle base du même nom : ma_base
- une fois dans ma_base, j'entre dans la fenetre SQL, et dans la partie 'Emplacement du fichier texte', je selectionne nom_fichier.sql
>> il mouline, mais rien ne se passe, toujours aucune table dans la base créée

Où est ce que je me plante?
si je dois indiquer un utilisateur et mot de passe, est ce que c'est celui indiqué sur le serveur source, ou celui de mon serveur destination?
est ce que dans la méthode 1, je dois placer nom_fichier.sql à un endroit précis?
sur le net, on parle de Shell, est ce que je dois taper la commande dans la console windows?

Une fois que cette base sera importée, ca ira mieux, mais là, je suis un peu perdu.

Merci à ceux qui me répondront
AliochaBada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 00h24   #2
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 54
Points : 17
Points : 17
Arggh

Ca fonctionne pourtant, mais table par table, structure puis données.....

J'en ai pour toute la nuit, alors si quelqu'un a une soluc', je garde un oeil plein d'espoir sur le forum.

Au fait le fichier fait 12000 et quelques Ko, ca explique que la methode 2 ne fonctionne pas...

Sérieux, si je dois faire ca toutes les semaines pour avoir des infos updatées, je vais passer des wweek ends sympatoches
AliochaBada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2006, 16h19   #3
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 54
Points : 17
Points : 17
Je me permets un chti UP.
Pour cette fois la base est bien là, mais de diou, je ne me vois pas faire 4H d'import toutes les semaines....

Il doit bien exister une solution pour importer en une fois ce fichier SQL....

SVP, un petit coup de pouce à un débutant
AliochaBada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2006, 20h48   #4
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

Pour la première méthode, il faut en effet taper cette commande dans le shell, c'est-à-dire "l'invite de commandes" sous Windows. Et il faut que l'exécutable "mysql" soit accessible, donc en étant dans le bon répertoire ou en ayant le chemin d'accès dans le PATH.

D'ailleurs, tu auras sûrement besoin d'autres paramètres comme le nom d'utilisateur et le mot de passe.
Code :
mysql -u root --pasword=xxx ma_base < c:\chemin\...\fichier.sql
Je ne sais pas si ça sera beaucoup plus rapide que via PhpMyAdmin...
Quelle taille fait ton fichier de dump ? Utilises-tu des tables InnoDB (il y aura peut-être moyen d'optimiser facilement l'insertion) ? Peux-tu nous montrer les 10-15 premières lignes du fichier pour voir quel type de dump a été réalisé ?

A+
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2006, 21h34   #5
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 54
Points : 17
Points : 17
Merci beaucoup pour ta réponse.

Citation:
Pour la première méthode, il faut en effet taper cette commande dans le shell, c'est-à-dire "l'invite de commandes" sous Windows. Et il faut que l'exécutable "mysql" soit accessible, donc en étant dans le bon répertoire ou en ayant le chemin d'accès dans le PATH. D'ailleurs, tu auras sûrement besoin d'autres paramètres comme le nom d'utilisateur et le mot de passe.
Code :
mysql -u root --pasword=xxx ma_base < c:\chemin\...\fichier.sql
Bon déjà je tapais ca dans la fenetre SQL de PhpMyAdmin, ca explique peut etre le message d'erreur... J'espere qu'il n'y a pas de mot de passe, sinon ca va etre vite reglé!

Citation:
Je ne sais pas si ça sera beaucoup plus rapide que via PhpMyAdmin...
Quelle taille fait ton fichier de dump ? Utilises-tu des tables InnoDB (il y aura peut-être moyen d'optimiser facilement l'insertion) ? Peux-tu nous montrer les 10-15 premières lignes du fichier pour voir quel type de dump a été réalisé ?
C'est vraiment la galere avec PhPMyAdmin, je suis obligé de le faire en une dizaine de fois, impossible de faire ca en routine chaque semaine...
Le fichier Dump fait un peu plus de 12 Mo.
Oui les tables pour la plupart sont de type InnoDB.
Et voilà pour le début du Dump, j'ai mis ce qui précédait les tables et leurs données :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- MySQL dump 10.9
--
-- Host: localhost    Database: nom_base
-- ------------------------------------------------------
-- Server version    4.1.14-standard
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Encore merci pour l'aide que tu m'apportes, je m'en vais essayer une importation les doigts dans le nez via la console Dos de Windows.
AliochaBada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2006, 22h17   #6
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Ok, si tu es sous InnoDB, un moyen simple d'optimiser est de toute faire dans une seule transaction et de tout "commiter" après les insertions.

Peux-tu donner un peu plus de ton fichier, au moins jusqu'à 2-3 lignes INSERT. J'aimerais surtout voir si ton dump a été fait avec l'option "--single-transaction", ce qui correspond à l'optimisation que j'ai expliquée.
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 01h31   #7
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 54
Points : 17
Points : 17
Citation:
Envoyé par Biglo
de toute faire dans une seule transaction et de tout "commiter" après les insertions.
Ca a l'air bien, surtout le en une seule transaction,

J'ai pas encore testé l'importation via la console de Windows, mais je m'en vais le faire là.

Merci de me donner un peu de ton temps ; voilà la partie du dump concernant la premiere table :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
--
-- Table structure for table `AFFECTATION`
--
DROP TABLE IF EXISTS `AFFECTATION`;
CREATE TABLE `AFFECTATION` (
  `ID_AFFECTATION` int(11) NOT NULL AUTO_INCREMENT,
  `NOM_AFFECTATION` varchar(255) NOT NULL DEFAULT '',
  `JOURNAL_AFFECTATION` varchar(255) NOT NULL DEFAULT '',
  `DESC1_AFFECTATION` text NOT NULL,
  `DESC2_AFFECTATION` text NOT NULL,
  `CPT_GENERAL_PORT` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY  (`ID_AFFECTATION`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `AFFECTATION`
--
/*!40000 ALTER TABLE `AFFECTATION` DISABLE KEYS */;
LOCK TABLES `AFFECTATION` WRITE;
INSERT INTO `AFFECTATION` VALUES (4,'COMMBC','ACH','BC','',''),(5,'COMMBM','ACH','BM','',''),(6,'COMMBI','ACH','BI','',''),(7,'COMMEM','ACH','EM','',''),(8,'COMCAL','ACH','COM','',''),(9,'ADMINT','ACH','ADM','',''),(10,'COMMLA','ACH','LA','',''),(11,'COMMAN','ACH','AN','','');
UNLOCK TABLES;
/*!40000 ALTER TABLE `AFFECTATION` ENABLE KEYS */;
Mais il y aussi des tables de type MyISAM.
Voilà le dump pour une des ces tables :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--
-- Table structure for table `COMMANDE_BL`
--
 
DROP TABLE IF EXISTS `COMMANDE_BL`;
CREATE TABLE `COMMANDE_BL` (
  `ID_COMMANDE_BL` int(11) NOT NULL AUTO_INCREMENT,
  `BL_COMMANDE` varchar(255) NOT NULL DEFAULT '',
  `DATE_BL_COMMANDE` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `COMMENTAIRE_COMMANDE_BL` text NOT NULL,
  `id_ligne` int(11) NOT NULL DEFAULT '0',
  `QTE_RECU` int(11) NOT NULL DEFAULT '0',
  `EXPORT_RECU` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`ID_COMMANDE_BL`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `COMMANDE_BL`
--
/*!40000 ALTER TABLE `COMMANDE_BL` DISABLE KEYS */;
LOCK TABLES `COMMANDE_BL` WRITE;
INSERT INTO `COMMANDE_BL` VALUES (1,'TESTAUTO','2005-09-01 00:00:00','',43535,50,0),(2,'','2005-09-01 00:00:00','',43540,2,0),(3,'','2005-09-15 00:00:00','',43540,0,0),(4,'110831','2005-09-05 00:00:00','',43551,1,0),(5,'101097','2005-08-03 00:00:00','',43551,1,0),(6,'701','2005-09-15 00:00:00','',43540,1,0),(7,'','2005-09-23 00:00:00','',43540,1,0),(8,'701','2005-10-03 00:00:00','',43540,1,0),(9,'136175','2005-10-04 00:00:00','',43548,0,0),(10,'91028','2005-10-06 00:00:00','',43551,1,0),(11,'','2005-10-13 00:00:00','',43548,0,0),(12,'','2005-11-13 00:00:00','',43548,0,0),(13,'','2005-11-13 00:00:00','',43551,0,0),(14,'','2005-11-04 00:00:00','',43551,1,0),(15,'701','2005-11-15 00:00:00','',43540,4,0),(16,'701','2005-11-17 00:00:00','',43540,1,0),(17,'','2005-12-01 00:00:00','',43540,0,0),(18,'VA3002/1JAN2006','2006-01-03 00:00:00','',45495,1,0),(19,'701/23012006','2006-01-23 00:00:00','',45495,1,0),(20,'701/02022006','2006-02-06 00:00:00','',45495,1,0),(21,'701/16022006','2006-02-16 00:00:00','',45495,1,0),(22,'701/02032006','2006-03-02 00:00:00','',45495,1,0),(23,'','2006-03-15 00:00:00','',45495,0,0),(24,'701 DU 16032006','2006-03-20 00:00:00','',46894,1,0),(25,'701 DU 16032006','2006-03-20 00:00:00','',46895,1,0),(26,'80139261','2006-04-04 00:00:00','',47352,5,0),(27,'80142370','2006-04-12 00:00:00','',47352,5,0),(28,'CC3879','2006-03-28 00:00:00','',48269,1,0),(29,'CC3879','2006-03-28 00:00:00','',48270,1,0),(30,'VA2995','2006-04-11 00:00:00','',48269,1,0),(31,'CC3878','2006-04-11 00:00:00','',48270,1,0),(32,'0604255011','2006-05-05 00:00:00','',48269,1,0),(33,'0604255011','2006-05-05 00:00:00','',48270,1,0),(34,'CC3876','2006-05-09 00:00:00','Echeance du 15/05/06',48270,1,0),(35,'VA2993','2006-05-09 00:00:00','Echeance du 15/05/2006',48269,1,0),(36,'ED1932','2006-05-30 00:00:00','',48269,1,0),(37,'ED1934','2006-05-30 00:00:00','Echeance du 30/05/06',48270,1,0),(38,'FA1081','2006-06-15 00:00:00','Juin 1/2',49236,1,0),(39,'FA1082','2006-06-06 00:00:00','JUIN 1/2',49237,1,0),(40,'FA1080','2006-06-19 00:00:00','Juin 2/2',49236,1,0),(41,'FA1079','2006-06-19 00:00:00','JUIN 2/2',49237,1,0),(42,'GB0527','2006-07-03 00:00:00','Juillet 1/2',49236,1,0),(43,'GB0526','2006-07-03 00:00:00','JUILLET 1/2',49237,1,0),(44,'GB0539','2006-07-11 00:00:00','Juillet 2/2',49236,1,0),(45,'GB0541','2006-07-11 00:00:00','Juillet 2/2',49237,1,0),(46,'GB0538','2006-07-27 00:00:00','',49236,1,0),(47,'GB0540','2006-07-27 00:00:00','',49237,1,0),(48,'','2006-08-03 00:00:00','',49237,0,0);
UNLOCK TABLES;
/*!40000 ALTER TABLE `COMMANDE_BL` ENABLE KEYS */;
Et surtout il y a ces tables qui font des centaines de cellules Excel et vont grossir de semaine en semaine. Je mets quelques lignes d'INSERT d'une de ces grosses tables :
Code :
INSERT INTO `LIGNE_STATUT_HISTORIQUE` VALUES (1,9,43092,0,0,'2005-07-27 17:08:13'),(2,5,43087,0,0,'2005-07-27 17:08:41'),(3,5,43090,0,0,'2005-07-27 17:08:41'),(4,5,43091,0,0,'2005-07-27 17:08:41'),(5,5,43088,0,0,'2005-07-27 17:08:41'),(6,5,43086,0,0,'2005-07-27 17:08:41'),(7,5,43089,0,0,'2005-07-27 17:08:41'),(8,3,0,0,0,'2005-07-27 17:25:56'),(9,3,43093,0,0,'2005-07-27 17:30:48'),(10,3,0,0,0,'2005-07-27 17:30:48'),(11,5,43093,0,0,'2005-07-27 17:31:36'),(12,3,43094,0,0,'2005-07-28 15:13:51'),(13,3,43095,0,0,'2005-07-28 15:13:51'),(14,3,43096,0,0,'2005-07-28 15:13:51'),(15,3,43097,0,0,'2005-07-28 15:13:51'),(16,3,43098,0,0,'2005-07-28 15:13:51'),(17,3,43099,0,0,'2005-07-28 15:13:51'),(18,3,43100,0,0,'2005-07-28 15:13:51'),(19,3,43101,0,0,'2005-07-28 15:13:51'),(20,3,43102,0,0,'2005-07-28 15:13:51'),
Alors docteur, c'est i possible en routine d'importer facilement cette base?

Merci encore pour ton aide.
AliochaBada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 11h24   #8
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

Essaie déjà en console pour voir si c'est plus rapide.

Pour les tables MyISAM, le lock en début d'insert a le même comportement que faire les insertions en une seule transaction dans une table InnoDB. Mais pour tes tables InnoDB, tu peux essayer de remplacer le lock par une transaction (je doute que ça change beaucoup les performances) :
Code :
1
2
3
4
START TRANSACTION;
INSERT INTO ...
INSERT INTO ...
COMMIT;
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h15.


 
 
 
 
Partenaires

Hébergement Web