Moteur de table inconnu "InnoDB"

récemment, j'ai découvert que je peux maximiser les performances mysql quand j'ai un bon matériel. Depuis que J'utilise InnoDB, j'ai ajouté de la configuration dans my.ini

Voici les nouvelles configurations:

innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120

puis je redémarre tous les services. Mais quand j'ai utilisé mon programme, une erreur s'est produite "moteur de table inconnu 'InnoDB'".

Ce que j'ai essayé de résoudre ce problème:

  1. j'efface le fichier log le redémarrage le service mais j'ai quand même eu l'erreur.
24
demandé sur ChrisF 2011-09-05 05:09:43
la source

7 ответов

d'Autres solutions n'ont pas résolu mon problème. Le moteur InnoDB a été désactivé après ajustement de la configuration.

suppression des fichiers de log ib_* borked dans mysql data dir a corrigé mon problème, et m'a permis d'utiliser 2G buffer pool pour InnoDB: http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem-enable-innodb#comment-131

20
répondu aaronbauman 2013-05-13 23:49:07
la source

1.Vérifiez si vous avez InnoDB activé:

mysql> show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb   | YES   |
+---------------+-------+
1 row in set (0.00 sec)

2.Si la valeur ci-dessus est désactivée, alors vous devez activer InnoDB.

3.Ouvrez le fichier de configuration de MySQL. Sur diverses plateformes, le fichier de configuration peut différer par le nom et l'emplacement du fichier:

  • Windows: $ MYSQL_INSTALL_DIRECTORY / my.ini

  • Linux / Unix:/etc/mysql / my.cnf

4.Si le paramètre skip-innodbis décommenté/existe, puis il suffit de mettre en commentaire:

 # skip-innodb

5.Fermer le serveur MySQL, supprimer/renommer les journaux MySQL pour rafraîchir la journalisation du serveur entier, et redémarrer le serveur MySQL:

  • Linux:

    ~$: /etc/init.d/mysql stop

    ~$: rm /var/lib/mysql/ib_logfile*

    ~$: /etc/init.d/mysql start

  • Windows:

    allez à $ MYSQL_INSTALL_DIRECTORY / data et supprimez/déplacez les fichiers journaux avec le préfixe ib_logfile.

14
répondu JERRY 2014-04-08 11:47:49
la source

je viens de récupérer la suppression du fichier journal et redémarré les services, et ça fonctionne! mais méfiez-vous d'attribuer 2G parce que innodb pourrait ne pas compiler, s'il vous plaît utiliser 1G si 2G ne fonctionne pas.

11
répondu rechie 2011-09-20 06:38:57
la source

j'ai rencontré ce type de problème. Le problème était que J'allouais plus de mémoire à InnoDB qu'au serveur avec la variable innodb_buffer_pool_size. MySQL ne s'est pas plaint de ne pas être en mesure d'allouer la mémoire dans ses journaux à ce sujet.

8
répondu Sean McCleary 2012-08-28 21:46:18
la source

j'ai essayé tous ceux (et beaucoup d'autres), mais une méthode qui a fonctionné pour moi, c'est:

  • Arrêter Le Serveur MySql

    /etc/init.d/mysql stop
  • Supprimer les fichiers journaux

    rm ib_logfile0 ib_logfile1
  • renommer le fichier InnoDB (si rien d'autre ne fonctionne car il sera recréé) mv ibdata1 old_ibdata1
  • j'ai cette configuration /etc/mysql/my.cnf -> même si vous ne le spécifiez pas, MySql utilisera la valeur par défaut valeur.

    [mysqld]
    datadir=/data/mysql/data
    socket=/var/run/mysqld/mysqld.sock
    
    #Not a must to define the following
    innodb_log_file_size=1G
    innodb_file_per_table=1
    innodb_flush_method=O_DIRECT
    innodb_buffer_pool_size=1G
    innodb_data_file_path=ibdata1:10M:autoextend
    innodb_lock_wait_timeout=18000
    
  • Démarrer Le Serveur MySql

    /etc/init.d/mysql start

4
répondu biniam_Ethiopia 2016-02-18 20:16:22
la source

une autre option que vous avez Si vous sabotez votre Mon.cnf file completely est de le remplacer par une configuration par défaut à partir de l'Installation mysql. Pour linux:

Vous avez les options suivantes,

/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf

Voici un exemple pour l'installer:

#backup original config
mv /etc/my.cnf{,.bak}

#copy new my.cnf from template
cp /usr/share/mysql/my-large.cnf /etc/my.cnf

Plus d'informations sur ces options est disponible à http://dev.mysql.com/doc/mysql/en/option-files.html

1
répondu ChrisN 2015-10-03 10:52:43
la source

Eu ce problème lors de la restauration de la sauvegarde. Le problème est que j'avais un peu différents paramètres dans mon.ini. Donc si quelqu'un a ce problème il vous suffit de définir les mêmes paramètres (copie de mon.ini), arrêter le service MySQL, puis restaurer tout le dossier de données et ensuite recommencer le service MySQL.

0
répondu Nux 2013-04-28 01:53:40
la source

Autres questions sur