Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de 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 01/01/2005, 19h54   #1
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Par défaut #1005-Ne peut créer la table '.\iup2\ufr.frm' (Errcode: 121)

Salut,

Avec cette requete:
Code :
1
2
3
4
5
CREATE TABLE UFR(
id_ufr int NOT NULL AUTO_INCREMENT ,
libelle_ufr varchar( 40 ) ,
PRIMARY KEY ( id_ufr )
) TYPE = innodb;
MySQL me renvoie le message d'erreur suivant:
#1005-Ne peut créer la table '.\iup2\ufr.frm' (Errcode: 121)

Une idée ?
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2005, 20h05   #2
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
[edit]c'est que des bêtises, faudrai que j'apprenne à lire les messages avant de répondre.[/edit]
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2005, 15h24   #3
Membre éclairé
 
Avatar de piff62
 
Inscription : décembre 2003
Messages : 431
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : décembre 2003
Messages : 431
Points : 362
Points : 362
Je sais que les champs auto_increment sont dificile a gerer .. peu etre que ton probleme viens de la ?
piff62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 21h46   #4
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
@Celelibi
Il n'y a pas de clef etrangere dans ma requete
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 21h53   #5
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Mon mysql a répondu :
Citation:
Votre requête SQL a été exécutée avec succès (traitement: 0.2126 sec.)
requête SQL:
Code :
1
2
3
4
5
CREATE TABLE UFR(
id_ufr int NOT NULL AUTO_INCREMENT ,
libelle_ufr varchar( 40 ) ,
PRIMARY KEY ( id_ufr )
) TYPE = innodb
Donc :
Soit tu n'as pas les droits d'écriture sur le répertoire data.
Soit un problème d'espace disque, ou de quota de places sur le répertoire
Soit tu n'as pas activé les tables innoDB dans mysql.
Attention à ces points :
Citation:
http://dev.mysql.com/doc/mysql/fr/InnoDB_configuration.html

Pour utiliser les tables InnoDB en MySQL versions 3.23, voyez section 16.3 InnoDB avec MySQL version 3.23.

En MySQL 4.0, vous n'avez rien à faire pour obtenir le support des tables InnoDB. Si vous ne souhaitez pas utiliser les tables InnoDB, vous pouvez ajouter l'option skip-innodb dans votre fichier d'options MySQL.

Les deux ressources disques importantes gérées par InnoDB sont sa table de données et son fichier de log.

Si vous ne spécifiez aucune options de configuration InnoDB, MySQL 4.0 et plus récent créera un fichier de données auto-croissant appelé `ibdata1' et deux fichiers de log de 5 Mo appelés `ib_logfile0' et `ib_logfile1' dans le dossier de données MySQL. En MySQL 4.0.0 et 4.0.1, le fichier de données est de 64 Mo et pas auto-croissant. En MySQL 3.23, InnoDB ne démarrera pas si vous ne fournissez pas d'options de configuration.
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 22h11   #6
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Bon, la solution d EasyPHP étant un peu du bricolage, je l'ai supprimé pour installer le "vrai" serveur MySQL 4.1.8.

J'ai activé le support des tables InnoDB et ma requete passe, du moins le début.

Car cette fois j'ai un message:
ERROR 1005: Can't create table '.\iup\intervention.frm' (errno: 150)

Voici ma requete:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE intervention
(
id_intervenant int,
id_ue int,
nb_heures int,
type_interv enum('cm','td','tp'),
PRIMARY KEY(id_intervenant,id_ue),
#index idx_idintervenant (id_intervenant),
#index idx_idue (id_ue),
FOREIGN KEY(id_intervenant) REFERENCES INTERVENANT(id_intervenant),
FOREIGN KEY(id_ue) REFERENCES UE(id_ue) 
)
type=innodb;
sachant que les tables INTERVENANT et UE ont été correctement définies.
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 22h17   #7
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Tu peux, juste après ta requête exécuté le SHOW INNODB STATUS pour voir les dernières erreurs. Tu auras un texte plus explicite. J'ai eu le problème il y a trois jours justement :
http://www.developpez.net/forums/viewtopic.php?t=279875
Mon problème était le suivant, les deux champs liés par la référence n'était pas de nature parfaitement identique
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 22h29   #8
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Merci de l'info Alex
Voila ce qui est renvoyé par SHOW INNODB STATUS.
Effectivement il semble qu'il y ait un probleme au niveau des clefs etrangeres et de leurs correspondances.
Je fouille vers là..
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
------------------------
LATEST FOREIGN KEY ERROR
------------------------
050104 22:26:49 Error IN FOREIGN KEY constraint of TABLE iup/intervention:
FOREIGN KEY(id_intervenant) REFERENCES INTERVENANT(id_intervenant),
FOREIGN KEY(id_ue) REFERENCES UE(id_ue)
)
type=innodb:
Cannot resolve COLUMN name close TO:
),
FOREIGN KEY(id_ue) REFERENCES UE(id_ue)
)
type=innodb
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 22h32   #9
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
YES !
Ca marche. En effet, id_intervenant n'existe pas, c'est id_inter

Enfin, le principal c'est d'avoir trouvé, et de connaitre l'utilisation de SHOW INNODB STATUS !

Merci
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2005, 17h43   #10
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
ARG

Ma base de données qui fonctionne enfin avec le serveur MySQL 4.1.8 doit etre portée sur une machine équipée uniquement d'EasyPHP 1.7.

Lorsque j'exécute mon fichier de construction sur ce PC, je récupère de nouveau le message que je rencontrais au début:
ERROR 1005: Can't create table '.\iup\intervention.frm' (errno: 150)

Je précise que j'ai les droits d'écriture puisque avant cette table j'en ai crée 6 autres de type INNODB avec des clefs étrangères et tout s'est bien passé.

Pour ce qui est de l'espace disque, je précise dans le fichier de config de MySQL on trouve
Code :
innodb_data_file_path=ibdata1:100M
(ce qui devrait suffir pour une base avec 7 tables) et qu'il reste 900Mo de dispo sur le disque dur de cette machine.

Que passa :
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2005, 19h00   #11
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Que retourne la commande ?
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2005, 16h31   #12
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
avec EasyPHP je n'ai plus acces au serveur MYSQL en ligne de commande.
Si j'essai de lancer "mysql" je recois le message d'erreur
C:\Program Files\EasyPHP1-7\mysql\bin>mysql
ERROR 1045: AccÞs refusÚ pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON
)

Donc impossible d'utiliser INNODB STATUS....
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2005, 16h43   #13
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
comment exécute-tu tes requêtes ? via php ?
et bien tu peux faire un SHOW INNODB STATUS comme une requete normale.
par contre il me semble que seul l'utilisateur root peut exécuter cette requête.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2005, 16h50   #14
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
J'utilise PHPmyADMIN (contenu dans easyphp).
En fait on peu tricher un peu en choisissant insérer une table, passer en mode SQL et taper SHOW INNODB STATUS.

Bon apprement il s'agit d'une erreur de résolution de nom dans mes foreign key.
Je vais approfondir la chose

Merci
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2005, 17h18   #15
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
OUF, enfin j'ai trouvé !

L'erreur venait du fait que je croyais que PRIMARY KEY entrainait UNIQUE, NOT NULL et INDEX alors que l'INDEX n'y est pas.

Du coup, quand les clefs etrangeres servent de clefs primaires, il faut mettre PRIMARY KEY(X,Y) et
IDX....X
IDX....Y
EvilAngel 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 14h35.


 
 
 
 
Partenaires

Hébergement Web