web-dev-qa-db-fra.com

La table n'existe pas après CREATE TABLE

J'essaie d'importer ce SQL dans mon nom de base de données symfony

CREATE TABLE IF NOT EXISTS ingredient (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

et je reçois 

#1146 - Table 'symfony.ingredient' doesn't exist

Cela semble plutôt étrange puisque j'essaie ici de CRÉER cette table, alors ... pourquoi ça ne marche pas? J'ai le même problème si j'essaie

CREATE TABLE symfony.ingredient

Ou la fonctionnalité de symfony 2

c:\Dev\Symfony>php app/console doctrine:schema:create

PS: J'ai ce problème uniquement avec la nouvelle version de xampp.

MODIFIER

Eh bien, j’ai réussi à résoudre mon problème. J'ai abandonné ma base de données, puis j’en ai créé une (pas avec l’interface) et finalement j’ai rétabli le service mysql. Je ne sais pas pourquoi ni comment. débranchez-moi, mais j'espère que cela aidera quelqu'un.

18
Korangar

J'ai eu le même problème. Ma solution: Changer le nom de la table dans la requête de création de table, l'exequater puis renommer la table.

Ensuite, vous pouvez également supprimer cette table et la créer après sans erreur.

15
Lexxtor

Ce qui a fonctionné pour moi a été:

  • Aller dans le dossier xampp/mysql/data/nom-base-de-données /
  • Vous ne verrez que le fichier .frm. Les fichiers .MYD et .MYI sont manquants pour les tables vides. 
  • Supprimez le fichier .frm.
  • Arrêtez le processus MySQL et redémarrez-le. 
  • Après cela, j'ai pu créer la table.

L'ancienne version de xampp créait des tables au format MyISAM et formatait la nouvelle version en InnoDB!

9
jemont

J'ai eu le même problème. J'ai reçu un message "Le serveur est parti" lors de la création de la table et après cela, je n'ai plus de messages de table, mais je ne pouvais pas essayer de recréer la table car j'avais alors un message disant que did existait. Je l'ai résolu en exécutant ceci en ligne de commande:

mysqlcheck --repair --all-databases -u root -p

Cela ne ferait pas de mal non plus de redémarrer le serveur mysql après cela, juste au cas où.

1
Mike

J'ai eu le même problème: # 1146 - La table 'tutsplus_ci.posts' n'existe pas. J'ai résolu ce problème en suivant ces étapes: 

J'ai exporté la table incriminée dans un fichier SQL. J'ai remarqué que le nom de la table dans le fichier .sql comporte un espace de fin supplémentaire. Je reviens à phpmyadmin dans la section Opérations de mon tableau et je le renomme de 'posts' à 'posts'. Après avoir pris toutes ces mesures, l'erreur ne s'est pas manifestée. 

Pour conclure, la table 'posts' n'existait pas comme le dit le message d'erreur. Parce que le nom réel de la table était 'posts' et non 'posts'. L'espace avant le nom est difficile à remarquer dans phpmyadmin. C'est l'histoire. Rien de spécial. J'espère que ça aide! 

0
Traian

Hmm, êtes-vous sûr d'avoir une base de données et que vous avez le privilège de faire les instructions CREATE?.

Si vous avez phpmyadmin:

Pour tester la première possibilité, créez une nouvelle base de données de test (vide), cliquez dessus dans le menu, appuyez sur le bouton , Puis appuyez sur le bouton SQL dans la partie supérieure de la navigation et copiez-collez à nouveau votre déclaration. Si cela ne fonctionne pas, essayez la seconde. 

Pour la seconde, vous pouvez cliquer sur le bouton 'home' puis sur 'Privilèges'. S'il n'y a que deux ou trois comptes, mais tous avec des privilèges root, vous avez les privilèges pour créer un CREATE. Sinon, vous pouvez consulter votre compte et vous accorder les privilèges.

Si les deux possibilités ne fonctionnent pas, je ne le sais pas non plus. Cela a bien fonctionné pour moi :(

0
Tessmore