unixmaniax.frLE CARNET DES SYSTÈMES UNIX

Services / Services

MySQL : administrer, modifier et diagnostiquer selon le moteur

Les tâches courantes du wiki révisées : identifier les moteurs, vérifier une modification SQL et distinguer réparation MyISAM et récupération InnoDB.

Identifier le serveur et les moteurs de tables

Un moteur se choisit au niveau des tables, pas uniquement au niveau d’une base entière. L’ancienne opposition entre deux moteurs ne décrit pas toutes les possibilités du serveur. Commencez par relever version, moteur des tables et configuration utile à l’application.

Distinguez MySQL de MariaDB et utilisez leur documentation respective. Le nom d’un paquet ou d’une commande cliente ne suffit pas à identifier toutes les caractéristiques du serveur auquel vous êtes connecté.

SELECT VERSION();
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE();

Vérifier le périmètre avant UPDATE ou DELETE

Avant une modification, exécutez un SELECT avec la même condition et contrôlez les lignes concernées. Préparez une sauvegarde adaptée. Une transaction peut permettre d’annuler certaines opérations sur des tables transactionnelles ; elle ne constitue pas un filet universel pour tous les moteurs et toutes les instructions.

TRUNCATE, DROP et certaines opérations de structure ont des implications différentes d’une suppression de lignes. Ne les utilisez pas comme raccourcis interchangeables. Les applications doivent transmettre les valeurs avec des requêtes préparées plutôt que construire du SQL à partir d’une saisie.

Ne pas appliquer REPAIR TABLE à InnoDB

L’ancien mémo enchaînait CHECK TABLE puis REPAIR TABLE sans préciser les moteurs. REPAIR TABLE concerne notamment MyISAM, ARCHIVE et CSV ; ce n’est pas une procédure de réparation InnoDB. Une corruption demande d’abord la conservation des journaux et d’une copie exploitable des éléments nécessaires à la récupération.

Identifiez le moteur et la cause probable, puis suivez la méthode documentée pour cette version. Un mode de récupération forcée est un outil spécialisé, à utiliser avec une stratégie d’extraction et de retour à un état sain ; il ne remplace pas les sauvegardes testées.

Récupérer un accès administrateur avec la procédure de la version

La recette ancienne qui modifie directement une colonne de mot de passe ne doit pas être transposée à une version actuelle. L’authentification, les plugins et les tables système ont évolué. Utilisez la procédure officielle de réinitialisation, depuis un accès système autorisé et pendant une maintenance.

Isolez le service selon les exigences de cette procédure, retirez tout fichier contenant un secret temporaire et redémarrez dans la configuration normale. Vérifiez ensuite les comptes applicatifs. Ne laissez pas un mode de contournement des contrôles actif après le dépannage.

Sources & documentation

Consultez la documentation correspondant à vos versions avant d’appliquer les exemples. Les commandes illustrent la méthode ; elles ne remplacent pas un essai dans votre environnement.