Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2007, 10h30   #1
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
Par défaut Besoin retour expérience sur config InnoDB (my.cnf)

Bonjour,

Suite à un post qui ne semble pas avoir de succès, je vais plutôt essayer de voir ce qui marche chez les autres

Si vous avez configuré my.cnf pour se servir du moteur InnoDB et des tablesspaces, pourriez-vous svp me communiquer le contenu des variables InnoDB et éventuellement une règle concernant les tailles allouées en RAM.

En vous remerciant,

C. Tobini
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 11h05   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par ctobini Voir le message
Bonjour,

Suite à un post qui ne semble pas avoir de succès, je vais plutôt essayer de voir ce qui marche chez les autres

Si vous avez configuré my.cnf pour se servir du moteur InnoDB et des tablesspaces, pourriez-vous svp me communiquer le contenu des variables InnoDB et éventuellement une règle concernant les tailles allouées en RAM.

En vous remerciant,

C. Tobini
Il y a pas de règle spécial pour la taille mémoire. Celle par défaut paraissent correcte. Moi j'ai configuré mon fichier my.ini pour que ça soit lest table InnoDB par défaut. En fait, c'est pas tellement un problème si c'est autre chose. C'est juste que si à la création d'une table tu ne précises pas il va utiliser celle par défaut. Dans le cas contraire, celle qui tu lui indique via la commande ENGINE.


Voici la ligne en question :
Citation:
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
Avec ça roule directe !

Extrait de mon contenu concernant INNODB
Citation:
# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
#skip-innodb

# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M

# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1

# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=1M

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=47M

# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=24M

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 11h30   #3
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
Bonjour et merci pour la réponse,

Tu es donc sous Windows, tout se passe bien avec la config que tu as collé dans le post.

Je n'ai pas de problème si je fixe juste default_table_type = innodb.

C'est avec les options suivantes :

innodb_data_home_dir = '/etc/mysql/data'
innodb_data_file_path = 'idbdata1:1G:autoextend'
innodb_buffer_pool_size = 1536M
innodb_additional_mem_pool_size = 10M
# innodb_log_file_size = 384M
innodb_log_buffer_size = 8M

que j'ai un problème, surtout innodb_log_file_size.

Si je ne fixe pas cette variable, toutes les autres passent. En revanche dès que je la fixe, impossible de redémarrer le serveur MySQL, même en recommantant la ligne

J'ai cru comprendre que innodb_log_file_size doit être un multiple de innodb_buffer_pool_size (25% idéalement), mais je n'avance pas là-dessus.

Une idée ?

C. Tobini
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 12h44   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Si tu places les mêmes valeurs que les miennes ça passe ou non ?
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 16h21   #5
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
Tes paramètres exactes on fonctionné, donc ça peut marcher, merci !

Voici la config qui marche chez moi :

# innodb_data_home_dir = /var/lib/mysql/innodb_data
# innodb_data_file_path = ibdata1:1000M:autoextend
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 20M
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 256M # 25% innodb_buffer_pool_size
innodb_log_buffer_size = 8M
innodb_thread_concurrency = 8

Mon problème désormais est que je ne peux pas fixer de home_dir et/ou de data_path.

Petite astuce: kill -9 des processus mysqld mysqld_safe et mysqladmin si 'fail' permanent même avec la config initiale.
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h36.


 
 
 
 
Partenaires

Hébergement Web