2010-11-21 11 views
0

Je reçois l'erreur suivante sur un code d'une ancienne application:Erreur MySQL: "moteur de table inconnu 'InnoDBopt'"

A Database Error Occurred 
Error Number: 1286 

Unknown table engine 'InnoDBopt' 

INSERT INTO `sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`) VALUES ('2ef196aba7f060308be6b7bc1133671f', '127.0.0.1', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Ap', 1290342372) 

J'utilise la version MySQL 5.1.36. Cette application a été développée il y a un certain temps, donc il est très probable que j'ai juste besoin de rétrograder ma version de MySQL pour l'exécuter? Si c'est le cas, veuillez indiquer la version dont j'ai besoin pour l'exécuter.

Edit: Pour clarifier, je devais copier ma base de données d'une installation de MySQL à un autre, donc je copiais tout à l'intérieur `c:/mysql/data » à l'autre installation de MySQL, qui est probablement ce qui cause ce problème .

+0

Cela ressemble à un moteur de table cassée définition: Il n'y a pas un seul hit Google pour 'InnoDBopt'. Que dit un SHOW CREATE? –

+0

Premier à vérifier est votre nouveau support de wamp mysql innodb.Deuxièmement, essayez 'mysqldump' pour charger les données dans la nouvelle configuration – ajreal

Répondre

0

Où le moteur de table est-il défini? dans my.cnf? vérifiez l'orthographe dans my.cnf ... "opt" sonne comme un chemin vers un fichier journal ou quelque chose de défini dans le fichier de configuration.

+0

qui est probable, où est-ce répertorié dans mon my.cnf? –

+0

recherchez 'my.cnf' ... prob dans/etc ou quelque chose. – luckytaxi

+0

J'ai le fichier my.cnf, que dois-je rechercher dans ce fichier? –

0

Run SHOW CREATE TABLE sessions puis exécutez SHOW engines

Vous verrez quelque chose comme MOTEUR = xyz à lui fin du premier résultat de la commande

xyz doit être dans la liste renvoyée par les moteurs AFFICHER

Editer: Pour être plus explicite: Le résultat de SHOW CREATE TABLE sessions est quelque chose comme:

Table: sessions Create Table: CREATE TABLE sessions ( ................ ) ENGINE=xyz

où xyz pourrait être MyIssam, InnoDB, etc.

+0

Lorsque je lance la 1ère requête, je reçois '# 1286 - Moteur de table inconnu' InnoDB ' '. –

+0

lire à propos de # 1286 - Erreur de moteur de table inconnue 'InnoDB' ici: http://forums.mysql.com/read.php?22,150623,150822 – cristian

1

Comme suggéré par Pekka, il n'y a pas de moteur 'InnoDBopt'

Essayez show engines;

Si quelque chose mysql de retour comme

+------------+----------+----
| Engine | Support | ...
+------------+----------+----
| InnoDB | DISABLED | ...

Probablement moteur innodb a été désactivé.
option Rechercher skip-innodb dans votre configuration MySQL (comme my.cnf),
commentaire sur cette option,
redémarrer le démon mysql, il doit fixer

+0

Cette requête ne montre pas InnoDB dans la liste retournée? –

+0

Si vous avez installé Mysql à partir de sources, vous oubliez cette option '--with-innodb' ou quelque chose ne va pas avec votre fichier de configuration – cristian

+0

J'ai installé WAMP et cela a installé MySQL pour moi. Qu'est-ce que je devrais faire maintenant? –

3

Assurez-vous que l'utilisateur MySQL peut écrire/tmp. J'ai obtenu 'Unknown table engine InnoDB' après la restauration où/tmp n'était pas accessible en écriture pour cet utilisateur.

2

Il y a une autre raison pour laquelle le moteur INNODB est absent de MySQL. Si votre variable innodb_buffer_pool_size est trop élevée et que MySQL ne peut pas allouer le tampon, il désactivera le moteur INNODB.

Vous devriez voir quelque chose comme ça dans le journal des erreurs:

140204 13:12:26 InnoDB: Initializing buffer pool, size = 4.9G 
140204 13:12:26 InnoDB: Error: cannot allocate 5242896384 bytes of 
InnoDB: memory with malloc! Total allocated memory 
InnoDB: by InnoDB 36878736 bytes. Operating system errno: 12 
InnoDB: Check if you should increase the swap file or 
InnoDB: ulimits of your operating system. 
InnoDB: On FreeBSD check you have compiled the OS with 
InnoDB: a big enough maximum process size. 
InnoDB: Note that in most 32-bit computers the process 
InnoDB: memory space is limited to 2 GB or 4 GB. 
InnoDB: We keep retrying the allocation for 60 seconds... 
140204 13:13:26InnoDB: Fatal error: cannot allocate the memory for the buffer pool 
140204 13:13:26 [ERROR] Plugin 'InnoDB' init function returned error. 
140204 13:13:26 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 

Cette erreur a été enregistrée sur un serveur avec 1 Go de RAM alors que la demande pool de mémoire tampon 4.9g

Questions connexes