Outils pour utilisateurs

Outils du site


informatique:linux:mysql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:linux:mysql [2013/03/08 06:58]
benoit
informatique:linux:mysql [2020/11/03 13:32] (Version actuelle)
benoit [Sauvegarde]
Ligne 45: Ligne 45:
   use my_database   use my_database
   show table status;   show table status;
-  ​+ 
 +Voici quelques syntaxes qui donnent un résultat équivalent à ''​show table status''​ mais qui permet de filtrer : 
 +  SELECT * FROM information_schema.tables WHERE table_schema = DATABASE();​ 
 +  SELECT TABLE_NAME,​TABLE_ROWS FROM information_schema.tables WHERE table_schema = DATABASE();​ 
 +  SELECT TABLE_NAME,​TABLE_ROWS FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY TABLE_ROWS;​ 
 +  SELECT TABLE_SCHEMA,​TABLE_NAME,​TABLE_ROWS FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY TABLE_ROWS;​ 
 + 
 +Exporter un tables vers un fichier CSV : 
 +  SELECT * FROM my_table 
 +  INTO OUTFILE '/​tmp/​my_table.csv'​ 
 +  FIELDS TERMINATED BY ','​ 
 +  ENCLOSED BY '"'​ 
 +  LINES TERMINATED BY '​\n';​
  
 ==== USE ==== ==== USE ====
Ligne 58: Ligne 70:
 ou ou
   desc users;   desc users;
 +
 +Pour voir le nombre de ligne par tables :
 +  SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '​ma_base';​
  
 ==== GRANT ==== ==== GRANT ====
Ligne 89: Ligne 104:
 Lancer la requête : Lancer la requête :
   mysql < select.sql   mysql < select.sql
 +
 +ou bien :
 +  mysql -u root -p dbperso
 +  source select.sql
  
 :!: En cas de problème d'​accent,​ insérer la ligne suivante en tête du script SQL pour que l'​import se fasse avec un encodage en UTF-8 :!: En cas de problème d'​accent,​ insérer la ligne suivante en tête du script SQL pour que l'​import se fasse avec un encodage en UTF-8
Ligne 99: Ligne 118:
 Pour ne pas afficher le nom des colonnes :  Pour ne pas afficher le nom des colonnes : 
   mysql --skip-column-names < select.sql   mysql --skip-column-names < select.sql
 +
 +Pour faire un requête en mode non intéractif :
 +  mysql --user=root --password='​*******'​ -e "SHOW DATABASES;"​
  
  
Ligne 106: Ligne 128:
  
 ===== Monitoring ===== ===== Monitoring =====
-Pour voir les process mysql :+Pour voir les process mysql (dans la console MySQL) : 
 +  SHOW PROCESSLIST 
 + 
 +Pour voir les process mysql avec les requêtes détaillées (dans la console MySQL) : 
 +  SHOW FULL PROCESSLIST 
 + 
 +Pour voir les process mysql sans la console MySQL :
   mysqladmin processlist   mysqladmin processlist
  
Ligne 126: Ligne 154:
 Note :!: : Si aucun chemin de fichier n'a été précisé pour la variable **set-variable = log** le fichier log se trouvera par défaut dans ''/​var/​lib/​mysql/​HOSTNAME.log''​. Note :!: : Si aucun chemin de fichier n'a été précisé pour la variable **set-variable = log** le fichier log se trouvera par défaut dans ''/​var/​lib/​mysql/​HOSTNAME.log''​.
  
 +Obtenir la taille des bases de données :
 +  SELECT table_schema AS "​Database", ​
 +  ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" ​
 +  FROM information_schema.TABLES ​
 +  GROUP BY table_schema;​
 +
 +Obtenir la taille de chacunes des tables :
 +  use ma_table;
 +  SELECT ​
 +     ​table_schema as `Database`, ​
 +     ​table_name AS `Table`, ​
 +     ​round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
 +  FROM information_schema.TABLES ​
 +  ORDER BY (data_length + index_length) DESC;
 ===== Maintenance et réparation ===== ===== Maintenance et réparation =====
 Pour vérifier s'il y a des corruptions sur toutes les tables des bases de données : Pour vérifier s'il y a des corruptions sur toutes les tables des bases de données :
Ligne 175: Ligne 217:
 Pour sauvegarder une base et insérer les DROP de base et de table : Pour sauvegarder une base et insérer les DROP de base et de table :
   mysqldump -u root -p ma_base --add-drop-database --add-drop-table -p > dump_ma_base.sql   mysqldump -u root -p ma_base --add-drop-database --add-drop-table -p > dump_ma_base.sql
 +
 +Pour exporter uniquement le schémas de la base (pas les données):
 +  mysqldump --no-data -u root -p ma_base
  
 Pour sauvegarder et compresser un export de base : Pour sauvegarder et compresser un export de base :
Ligne 184: Ligne 229:
 Pour exporter certaines tables : Pour exporter certaines tables :
   mysqldump -u root -p ma_base table1 table2 > dump_mes_tables.sql   mysqldump -u root -p ma_base table1 table2 > dump_mes_tables.sql
 +  ​
 +Pour exporter selon un critère "​WHERE"​ dans une table :
 +  mysqldump --where "​country = '​France'"​ ma_base table1 > dump_where_France.sql
  
 Pour exporter une base de données à travers SSH : Pour exporter une base de données à travers SSH :
Ligne 295: Ligne 343:
 Pour connaître le statut de la réplication : Pour connaître le statut de la réplication :
   show slave status\G;   show slave status\G;
 +
 +===== Optimisations =====
 +
 +Quantité de mémoire que MySQL peut mettre des requêtes en buffer. La valeur recommandé est 25% de la mémoire disponible.
 +Exemple si le serveur dispose de 4 Go de mémoire dédié à MySQL :
 +
 +Editer ''/​etc/​mysql/​my.cnf''​ et ajouter/​modifier :
 +
 +  key_buffer 1G 
 +
 +Exemple pour augmenter le nombre de table en mémoire cache :
 +
 +  table_cache ​           = 2000
  
 ===== Pour plus de détails ===== ===== Pour plus de détails =====
informatique/linux/mysql.1362722319.txt.gz · Dernière modification: 2018/09/06 18:59 (modification externe)