Vous avez un mail avec comme sujet WARNING : mysqlcheck has found corrupt tables
Avec dans le corps un truc du genre :
ccoop.EMN_ACCES
warning : 1 client is using or hasn't closed the table properly
ccoop.EMN_DROIT
warning : 1 client is using or hasn't closed the table properly
ccoop.EMN_PROFIL
warning : 1 client is using or hasn't closed the table properly
ccoop.EMN_USER
warning : 1 client is using or hasn't closed the table properly
ccoop.LOGSEC
warning : 1 client is using or hasn't closed the table properly
ccoop.afbvbi
warning : 1 client is using or hasn't closed the table properly
ccoop.appli
warning : 1 client is using or hasn't closed the table properly
ccoop.cfg
warning : 1 client is using or hasn't closed the table properly
ccoop.pi11
warning : 1 client is using or hasn't closed the table properly
ccoop.prof
warning : 1 client is using or hasn't closed the table properly
ccoop.ser
warning : 1 client is using or hasn't closed the table properly
ccoop.serban
warning : 1 client is using or hasn't closed the table properly
ccoop.utbanq
warning : 1 client is using or hasn't closed the table properly
demo.EMN_ACCES
warning : 1 client is using or hasn't closed the table properly
demo.LOGSEC
warning : 1 client is using or hasn't closed the table properly
mysql.db
warning : 1 client is using or hasn't closed the table properly
mysql.user
warning : 1 client is using or hasn't closed the table properly
Improperly closed tables are also reported if clients are accessing
the tables *now*. A list of current connections is below.
+----+------------------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------------------+-----------+----+---------+------+-------+------------------+
| 4 | debian-sys-maint | localhost | | Query | 0 | | show processlist |
+----+------------------+-----------+----+---------+------+-------+------------------+
Uptime: 2 Threads: 1 Questions: 87 Slow queries: 0 Opens: 84 Flush tables: 1 Open tables: 64 Queries per second avg: 43.500
Extrait Doc Officiel MySQL
Doc disponible ici chez Nexen
5.7.2.1 Syntaxe de l’utilitaire myisamchk
myisamchk s’exécute avec une commande de la forme :
shell> myisamchk [options] tbl_name
Les options spécifient ce que vous voulez que myisamchk fasse. Elles sont décrites dans ce chapitre. Vous pouvez aussi obtenir une liste d’options en invoquant le programme avec myisamchk —help . Sans option, myisamchk va simplement vérifier les tables. Pour obtenir plus d’information ou pour demander à myisamchk de prendre des mesures correctives, il faut ajouter l’une des options listées ici.
tbl_name est la table que vous voulez réparer ou vérifier. Si vous exécutez myisamchk autre part que dans le dossier de données, vous devez spécifier le chemin jusqu’au fichier, car sinon, myisamchk n’aura aucune idée d’où chercher les données dans votre base. En fait, myisamchk ne se préoccupe pas du fait que le fichier que vous utilisez est dans le dossier de base ou pas : vous pouvez copier le fichier à réparer dans un autre dossier, et y faire les opérations d’entretien. Vous pouvez spécifier plusieurs noms de tables à myisamchk si vous le voulez. Vous pouvez aussi spécifier un nom sous la forme d’un fichier d’index (avec l’option .MYI ), qui vous permettra de spécifier toutes les tables dans un dossier en utilisant le schéma *.MYI . Par exemple, si vous êtes dans le dossier de données, vous pouvez spécifier toutes les tables dans le dossier comme ceci : shell> myisamchk *.MYI
Si vous n’êtes pas dans le dossier de données, et que vous souhaitez vérifier toutes les tables, vous devez ajouter le chemin jusqu’au dossier :
shell> myisamchk /path/to/database_dir/*.MYI
Vous pouvez même vérifier toutes les tables de toutes les bases avec le chemin suivant :
shell> myisamchk /path/to/datadir/*/*.MYI
La méthode recommandée pour vérifier rapidement toutes les tables est : myisamchk —silent —fast /path/to/datadir/*/*.MYI isamchk —silent /path/to/datadir/*/*.ISM
Si vous voulez vérifier toutes les tables et réparer celles qui sont corrompues, vous pouvez utiliser la ligne suivante :
myisamchk --silent --force --fast --update-state -O key_buffer=64M \
-O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M \
/path/to/datadir/*/*.MYI
isamchk --silent --force -O key_buffer=64M -O sort_buffer=64M \
-O read_buffer=1M -O write_buffer=1M /path/to/datadir/*/*.ISM
Ces commandes ci-dessus supposent que vous avez plus de 64 Mo de libres. Pour plus d’informations sur l’allocation de mémoire avec myisamchk , voyez la section Utilisation de la mémoire avec myisamchk .Notez que si vous obtenez une erreur comme celle-ci :
myisamchk: warning: 1 clients is using or hasn't closed the table properly
Cela signifie que vous essayez de vérifier une table qui a été modifiée par un autre programme (comme le serveur mysqld ) qui n’a pas encore refermé le fichier de table, ou que le fichier n’a pas été correctement refermé.Si mysqld fonctionne, vous devez forcer la fermeture correcte des fichiers de tables avec la commande FLUSH TABLES , et vous assurer que personne n’utilise les tables durant vos opérations avec myisamchk . En MySQL version 3.23, la meilleure méthode pour éviter ce problème est d’utiliser la commande CHECK TABLE au lieu de myisamchk pour vérifier les tables.
Sorry, the comment form is closed at this time.