J'utilise Wamp 2 sous Windows XP pro, et je souhaite utiliser le moteur 'innodb' avec MySQL. L'installation de Wamp 2 n'activant pas innodb dans MySQL, j'ai essayé d'installer le plugin comme indiqué sur le site innodb.com. Ca ne marche pas. D'après le support MySQL, on ne peut pas utiliser la dll du plugin innodb disponible en téléchargement, mais il faut compiler le plugin . Avant de me lancer dans la compilation du plugin, est-ce que quelqu'un sait si le moteur innodb a des chances d'être disponible dans les prochaines versions de Wamp sans compilation du plugin.
Après lancement de Wampserver puis de PhpMyadmin, tout du moins avec mes paramètres, on peut voir effectivement, dans la page d'accueil et l'onglet Moteurs que InnoDB n'est pas supporté.
Quitter Wampserver et modifier le fichier wamp\bin\mysql\mysql5.1.30\my.ini pour y mettre :
Lancer Wampserver Lancer PhpMyAdmin Page d'accueil et onglet Moteurs montre que le moteur InnoDB est activé et on peut alors créer une base de données avec des tables utilisant InnoDB :
CREATE TABLE IF NOT EXISTS `essais` ( `db_id` tinyint(4) unsigned NOT NULL, `nom` varchar(32) COLLATE latin1_general_ci NOT NULL, `prenom` varchar(32) COLLATE latin1_general_ci NOT NULL, PRIMARY KEY (`db_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Malgré la modification de my.ini, le moteur innodb n'est pas actif :
Moteurs de stockage Moteur de stockage Description ARCHIVE Archive storage engine CSV CSV storage engine MyISAM Default engine as of MySQL 3.23 with great performance BLACKHOLE /dev/null storage engine (anything you write to it disappears) MRG_MYISAM Collection of identical MyISAM tables MEMORY Hash based, stored in memory, useful for temporary tables
Ceci est confirmé par la commande show_engines qui affiche les mêmes informations.
Le fichier log de MySQL indique toujours : Plugin 'InnoDB' disabled by command line option
alors que dans le my.ini, il n'y a aucun paramètre pour rendre innodb disable.
Je me demande si nous avons la même version de wamp. La mienne est : wampserver 2.0 apache 2.2.11 php 5.1.30
[Note] Plugin 'InnoDB' disabled by command line option
indique bien que le « non support » de InnoDB est volontaire et est créé par la ligne
skip-innodb
du fichier my.ini
Si cette ligne est commentée (commençant par #) :
#skip-innodb
innodb sera supporté et le fichier log indiquera au premier lancement :
InnoDB: The first specified data file .\ibdata1 did not exist: InnoDB: a new database to be created! 090113 10:46:34 InnoDB: Setting file .\ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 090113 10:46:34 InnoDB: Log file .\ib_logfile0 did not exist: new to be created InnoDB: Setting log file .\ib_logfile0 size to 10 MB InnoDB: Database physically writes the file full: wait... 090113 10:46:35 InnoDB: Log file .\ib_logfile1 did not exist: new to be created InnoDB: Setting log file .\ib_logfile1 size to 10 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 090113 10:46:35 InnoDB: Started; log sequence number 0 0
Vérifiez bien que la ligne #skip-innodb est bien commentée (# au début) et qu'il ne reste pas une ligne skip-innodb non commentée dans le fichier wamp\bin\mysql\mysql5.1.30\my.ini
D'autre part, avant de lancer Wampserver avec fichier my.ini modifié, supprimez les fichiers
Le fichier wamp\bin\mysql\mysql5.1.30\my.ini ne contient aucun paramètre skip-innodb , commenté ou non. Le répertoire wamp\bin\mysql\mysql5.1.30\data contient seulement le fichier 'nom-machine'.pid et des fichiers mysql-bin.nnnnnn.
Merci pour les recherches.
Ci-dessous mon fichier my.ini :
# Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 64M) where MySQL plays # an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server) # # You can copy this file to # /etc/my.cnf to set global options, # mysql-data-dir/my.cnf to set server-specific options (in this # installation this directory is C:\mysql\data) or # ~/.my.cnf to set user-specific options. # # In this file, you can use all long options that a program supports. # If you want to know which options a program supports, run the program # with the "--help" option.
# The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server [wampmysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M basedir=L:/Server/wamp/bin/mysql/mysql5.1.30 log-error=L:/Server/wamp/logs/mysql.log datadir=L:/Server/wamp/bin/mysql/mysql5.1.30/data
# Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking
# Disable Federated by default skip-federated
# Replication Master Server (default) # binary logging is required for replication log-bin=mysql-bin
# binary logging format - mixed recommended binlog_format=mixed
# required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 1
# Replication Slave (comment out master section to use this) # # To configure this host as a replication slave, you can choose between # two methods : # # 1) Use the CHANGE MASTER TO command (fully described in our manual) - # the syntax is: # # CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, # MASTER_USER=<user>, MASTER_PASSWORD=<password> ; # # where you replace <host>, <user>, <password> by quoted strings and # <port> by the master's port number (3306 by default). # # Example: # # CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, # MASTER_USER='joe', MASTER_PASSWORD='secret'; # # OR # # 2) Set the variables below. However, in case you choose this method, then # start replication for the first time (even unsuccessfully, for example # if you mistyped the password in master-password and the slave fails to # connect), the slave will create a master.info file, and any later # change in this file to the variables' values below will be ignored and # overridden by the content of the master.info file, unless you shutdown # the slave server, delete master.info and restart the slaver server. # For that reason, you may want to leave the lines below untouched # (commented) and instead use CHANGE MASTER TO (see above) # # required unique id between 2 and 2^32 - 1 # (and different from the master) # defaults to 2 if master-host is set # but will not function as a slave if omitted #server-id = 2 # # The replication master for this slave - required #master-host = <hostname> # # The username the slave will use for authentication when connecting # to the master - required #master-user = <username> # # The password the slave will authenticate with when connecting to # the master - required #master-password = <password> # # The port the master is listening on. # optional - defaults to 3306 #master-port = <port> # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin
# Point the following paths to different dedicated disks #tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using InnoDB tables innodb_data_home_dir = L:/Server/wamp/bin/mysql/mysql5.1.30\data/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = L:/Server/wamp/bin/mysql/mysql5.1.30/log/ #innodb_log_arch_dir = L:/Server/wamp/bin/mysql/mysql5.1.30/archive/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50
[mysqldump] quick max_allowed_packet = 16M
[mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates
J'ai installé simplement easyphp v3, et le moteur innodb est installé d'office :
Moteur de stockage Description MEMORY Hash based, stored in memory, useful for temporary tables InnoDB Supports transactions, row-level locking, and foreign keys MyISAM Default engine as of MySQL 3.23 with great performance BLACKHOLE /dev/null storage engine (anything you write to it disappears) MRG_MYISAM Collection of identical MyISAM tables CSV CSV storage engine ARCHIVE Archive storage engine
D'autre part je n'ai plus la moindre erreur dans le log mysql. Avec wamp 2, indépendamment du problème innodb, j'ai toujours des erreurs concernant la table events de la base mysql.
csalome a écrit: ------------------------------------------------------- > D'autre part je n'ai plus la moindre erreur dans le log mysql. Comparez les deux versions du fichier my.ini
> Avec wamp 2, indépendamment du problème innodb, j'ai toujours des erreurs concernant la table > events de la base mysql.
Avez-vous effectué mysql_update sur vos tables comme expliqué ici : [forum.wampserver.com]
Votre fichier my.ini a été modifié depuis l'installation de Wampserver et n'est pas le fichier d'origine.
> socket = /tmp/mysql.sock (2 fois)
Il n'existe aucun fichier mysql.sock dans l'installation MySql 5.1.30 de Wampserver, ni dans le seul dossier tmp (wamp/tmp/), ni dans aucun autre dossier.
Merci pour ces informations. J'ai fait l'essai avec le fichier my.ini que vous suggérez, sans changer un octet. Tout fonctionne normalement à part le moteur innodb qui n'est toujours pas activé phpmyadmin/moteurs donne :
Moteurs de stockage Moteur de stockage Description ARCHIVE Archive storage engine CSV CSV storage engine MyISAM Default engine as of MySQL 3.23 with great performance BLACKHOLE /dev/null storage engine (anything you write to it disappears) MRG_MYISAM Collection of identical MyISAM tables MEMORY Hash based, stored in memory, useful for temporary tables
Je remarque par ailleurs que mySQL n'écrit plus dans le log file consulté depuis wamp.
Une précision : Pour repartir sur des bases saines, j'ai réinstallé mySQL de wamp avec le fichier 'WampServer2-MYSQL5130.exe' que j'ai téléchargé sur le site wamp. J'ai le même problème.
J'ai eu un problème similaire avec innodb. Cela provenait d'un fichier my.ini trop modifié et contenant de mauvaises information. Du coup, même après corrections, impossible de démarrer innodb.
La seule solution pour moi a été de supprimer complètement wamp (je pense que j'aurais pu me contenter de la partie mysql), suivie d'une réinstallation. Puis, avant de lancer les services, j'ai uniquement commenté la ligne skip-innodb. Depuis, je n'ai plus jamais eu de soucis.
Mais il est bon de noter que mysql semble très sensible dans les paramètres qu'on lui passe lorsqu'il s'agit d'innodb.
Bonjour et merci pour ces informations. Dans mon cas (wamp 2.0f), le fichier my.ini (que j'ai sauvegardé avant toute modification), n'a jamais contenu de ligne skip-innodb, même pas commentée. Les seuls paramètres concernant innodb figurant dans le fichier my.ini d'origine sont :
# Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = C:\mysql\data/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = C:\mysql\data/ #innodb_log_arch_dir = C:\mysql\data/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50
Quelle version de wamp utilisez vous ?
Le fichier que j'ai utilisé pour l'installation est : WampServer2.0f.exe
J'ai désinstallé wamp2 et l'ai réinstallé sans la moindre erreur.
Le premier fichier log après réinstallation complète de wamp2 est :
090113 18:58:52 [Note] Plugin 'InnoDB' disabled by command line option 090113 18:58:53 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist 090113 18:58:53 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_Z 090113 18:58:53 [ERROR] Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler. 090113 18:58:53 [Note] wampmysqld: ready for connections. Version: '5.1.30-community-log' socket: '' port: 3306 MySQL Community Server (GPL)
Quelles sont les conséquences de ces erreurs ?
Les paramètres innodb de my.ini après réinstallation complète de wamp2 sont :
# Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = C:\mysql\data/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = C:\mysql\data/ #innodb_log_arch_dir = C:\mysql\data/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50
Il semble donc que wamp 2 ne s'installe pas correctement.
Je ne pense pas qu'il y ait un problème général sur mon PC ayant une mauvaise influence sur l'installation de mySQL car l'installation de easyphp 3 sur le même PC n'occasionne pas la moindre erreur dans le fichier log de mySQL et active d'entrée innodb (que j'ai testé).
Sauf que, la présence d'un autre my.ini provoque bien des problèmes...
Personnellement, voici le contenu de mon my.ini (je n'en ai qu'un seul installé avec wamp 2.0e
[client] port=3306
[wampmysqld]
# The TCP/IP Port the MySQL Server will listen on port=3306 basedir=d:/wamp/bin/mysql/mysql5.1.30 log-error=d:/wamp/logs/mysql.log datadir=d:/wamp/bin/mysql/mysql5.1.30/data language=d:/wamp/bin/mysql/mysql5.1.30/share/french default-character-set=utf8 default-storage-engine=myisam max_connections=255 query_cache_size=256M table_cache=891 tmp_table_size=64M thread_cache_size=24
J'ai par ailleurs lu que lorsque ceci : [Note] Plugin 'InnoDB' disabled by command line option
Apparaissait, il y avait deux raisons possibles : 1-un my.ini traine sur le pc avec skip-innodb de marqué (faire une recherche avec powergrep sur le pc sur ce texte) 2-dans la ligne de commande du service, le paramètre est directement passé
Et seuls ces deux cas expliquent la désactivation d'innodb avec ce message d'erreur. Car pour moi, contrairement à vous, je n'avais jamais eu ce commentaire.