informatique:mysql:requetes_administration
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
informatique:mysql:requetes_administration [2019/09/06 06:57] – [Gérer les processus en cours] alexis | informatique:mysql:requetes_administration [2022/09/23 05:11] (Version actuelle) – alexis | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Requêtes d' | ====== Requêtes d' | ||
===== Affichage des erreurs ===== | ===== Affichage des erreurs ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SHOW ERRORS | SHOW ERRORS | ||
</ | </ | ||
+ | </ | ||
Plus d' | Plus d' | ||
+ | |||
===== Affichage des alertes ===== | ===== Affichage des alertes ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SHOW WARNINGS | SHOW WARNINGS | ||
</ | </ | ||
+ | </ | ||
Plus d' | Plus d' | ||
+ | |||
===== Affichage de la description d'une table ===== | ===== Affichage de la description d'une table ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
DESC < | DESC < | ||
</ | </ | ||
+ | </ | ||
Plus d' | Plus d' | ||
+ | |||
===== Purge des caches ===== | ===== Purge des caches ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
/* Ferme les tables ouvertes, force la fermeture des tables utilisées, purge le tampon de requêtes */ | /* Ferme les tables ouvertes, force la fermeture des tables utilisées, purge le tampon de requêtes */ | ||
Ligne 23: | Ligne 33: | ||
FLUSH HOSTS | FLUSH HOSTS | ||
</ | </ | ||
+ | </ | ||
Plus d' | Plus d' | ||
===== Changement de mot de passe ===== | ===== Changement de mot de passe ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SET PASSWORD = PASSWORD('< | SET PASSWORD = PASSWORD('< | ||
</ | </ | ||
+ | </ | ||
===== Changer les droits d'un utilisateur ===== | ===== Changer les droits d'un utilisateur ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
/* Pour donner les droits à tous les hôtes, il faut utiliser % */ | /* Pour donner les droits à tous les hôtes, il faut utiliser % */ | ||
Ligne 38: | Ligne 51: | ||
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
</ | </ | ||
+ | </ | ||
===== Récupérer la liste des index d'une base de données ===== | ===== Récupérer la liste des index d'une base de données ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SELECT DISTINCT s.INDEX_SCHEMA | SELECT DISTINCT s.INDEX_SCHEMA | ||
Ligne 50: | Ligne 65: | ||
AND s.TABLE_SCHEMA = '< | AND s.TABLE_SCHEMA = '< | ||
</ | </ | ||
+ | </ | ||
===== Gérer les processus en cours ===== | ===== Gérer les processus en cours ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
-- Affiche la liste des processus en cours | -- Affiche la liste des processus en cours | ||
Ligne 59: | Ligne 76: | ||
kill <id>; | kill <id>; | ||
</ | </ | ||
+ | </ | ||
===== Comparer le schéma de deux tables ===== | ===== Comparer le schéma de deux tables ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SELECT COLUMN_NAME | SELECT COLUMN_NAME | ||
Ligne 75: | Ligne 94: | ||
HAVING COUNT(1)=1 | HAVING COUNT(1)=1 | ||
</ | </ | ||
+ | </ | ||
La requête précédente est un peu violente car elle valide que les champs sont à la même position. | La requête précédente est un peu violente car elle valide que les champs sont à la même position. | ||
En voici une qui est moins restrictive car elle ne fait pas cette vérification : | En voici une qui est moins restrictive car elle ne fait pas cette vérification : | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SELECT COLUMN_NAME | SELECT COLUMN_NAME | ||
Ligne 89: | Ligne 110: | ||
HAVING COUNT(1)=1 | HAVING COUNT(1)=1 | ||
</ | </ | ||
+ | </ | ||
===== Récupérer la liste des tables avec une colonne manquante ===== | ===== Récupérer la liste des tables avec une colonne manquante ===== | ||
Dans certaines tables, on travaille avec les couples de colonnes '' | Dans certaines tables, on travaille avec les couples de colonnes '' | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
SELECT @tableSchema := ' | SELECT @tableSchema := ' | ||
, @columnName := ' | , @columnName := ' | ||
- | -- Première écriture de la requête (naive). Le temps d' | + | -- Première écriture de la requête (naïve). Le temps d' |
SELECT t.TABLE_NAME | SELECT t.TABLE_NAME | ||
FROM information_schema.TABLES AS t | FROM information_schema.TABLES AS t | ||
Ligne 123: | Ligne 146: | ||
HAVING COUNT(1) = 1; | HAVING COUNT(1) = 1; | ||
</ | </ | ||
+ | </ | ||
===== Calculer la taille des données ===== | ===== Calculer la taille des données ===== | ||
+ | <WRAP prewrap> | ||
<code sql> | <code sql> | ||
-- Afficher la taille globale de l' | -- Afficher la taille globale de l' | ||
- | SELECT | + | SELECT |
- | , CONCAT(ROUND(SUM(data_length | + | , CONCAT(ROUND(SUM(DATA_LENGTH |
FROM information_schema.TABLES | FROM information_schema.TABLES | ||
- | GROUP BY table_schema | + | GROUP BY TABLE_SCHEMA |
-- Afficher le détail de la taille des tables d'une base de données | -- Afficher le détail de la taille des tables d'une base de données | ||
- | SELECT | + | SELECT |
- | , table_rows | + | , TABLE_ROWS |
- | , CONCAT(ROUND(data_length | + | , CONCAT(ROUND(DATA_LENGTH |
- | , CONCAT(ROUND(index_length | + | , CONCAT(ROUND(INDEX_LENGTH |
- | , CONCAT(ROUND(((data_length | + | , CONCAT(ROUND(((DATA_LENGTH |
FROM information_schema.TABLES | FROM information_schema.TABLES | ||
- | WHERE table_schema | + | WHERE TABLE_SCHEMA |
+ | ORDER BY (DATA_LENGTH + INDEX_LENGTH) | ||
+ | , TABLE_NAME | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | ===== Logguer les requêtes ===== | ||
+ | <WRAP prewrap> | ||
+ | <code sql> | ||
+ | -- Définition de la destination (mysql.general_log) | ||
+ | SET GLOBAL log_output = ' | ||
+ | -- Activation du logging | ||
+ | SET GLOBAL general_log = ' | ||
+ | -- Désactivation du logging | ||
+ | SET GLOBAL general_log = ' | ||
+ | -- Purge de la table (uniquement quand le logging est arrêté) | ||
+ | TRUNCATE table mysql.general_log | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | Pour logguer dans un fichier : | ||
+ | <WRAP prewrap> | ||
+ | <code sql> | ||
+ | -- Définition de la destination | ||
+ | SET GLOBAL log_output = ' | ||
+ | -- Définition du fichier | ||
+ | SET GLOBAL general_log_file = "</ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ |
informatique/mysql/requetes_administration.1567778266.txt.gz · Dernière modification : 2019/09/06 06:57 de alexis