IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Installation MySQL Discussion :

#1005-Ne peut créer la table '.\iup2\ufr.frm' (Errcode: 121)


Sujet :

Installation MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut #1005-Ne peut créer la table '.\iup2\ufr.frm' (Errcode: 121)
    Salut,

    Avec cette requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    [edit]c'est que des bêtises, faudrai que j'apprenne à lire les messages avant de répondre.[/edit]

  3. #3
    Membre chevronné Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Par défaut
    Je sais que les champs auto_increment sont dificile a gerer .. peu etre que ton probleme viens de la ?

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    @Celelibi
    Il n'y a pas de clef etrangere dans ma requete

  5. #5
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Ingénieur DevOps
    Inscrit en
    Mai 2002
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 214
    Par défaut
    Mon mysql a répondu :
    Votre requête SQL a été exécutée avec succès (traitement: 0.2126 sec.)
    requête SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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 Tranchant
    Ingénieur DevOps pour le Ministère de l'Écologie
    Retrouvez mes articles sur PHP et Symfony

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  7. #7
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Ingénieur DevOps
    Inscrit en
    Mai 2002
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 214
    Par défaut
    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 Tranchant
    Ingénieur DevOps pour le Ministère de l'Écologie
    Retrouvez mes articles sur PHP et Symfony

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

  11. #11
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Ingénieur DevOps
    Inscrit en
    Mai 2002
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 214
    Par défaut
    Que retourne la commande ?
    Alexandre Tranchant
    Ingénieur DevOps pour le Ministère de l'Écologie
    Retrouvez mes articles sur PHP et Symfony

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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....

  13. #13
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    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.

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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

  15. #15
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 236
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Peut-on créer une table SQL avec Pentaho ?
    Par ToniConti dans le forum Pentaho
    Réponses: 1
    Dernier message: 29/11/2010, 18h40
  2. [quartz] peut on créer les tables automatiquement ?
    Par deadstar62 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/04/2007, 14h56
  3. Réponses: 17
    Dernier message: 03/12/2004, 14h33
  4. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21
  5. [DOM] est ce qu'on peut créer un fichier xml en java ?
    Par miloud dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 21/01/2004, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo