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
utilisateurs:bcag2:sql [Le 24/10/2017, 21:29]
bcag2 [SQL]
utilisateurs:bcag2:sql [Le 11/09/2022, 13:12] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 9: Ligne 9:
 Le but de cette page n'est pas d'​être une référence en la matière car il n'y a pas de particularité sous Ubuntu et les ressources ne manquent pas sur ce langage. Il s'agit juste de mettre en commun les quelques requêtes de base en les dissociant des pages qui peuvent s'y référer, telle que [[:mysql]], [[:​mariadb]],​ [[:​postgresql]]… Le but de cette page n'est pas d'​être une référence en la matière car il n'y a pas de particularité sous Ubuntu et les ressources ne manquent pas sur ce langage. Il s'agit juste de mettre en commun les quelques requêtes de base en les dissociant des pages qui peuvent s'y référer, telle que [[:mysql]], [[:​mariadb]],​ [[:​postgresql]]…
  
 +<note tip>Les manipulations suivantes sont en ligne de commande. \\
 +Pour un usage occasionnel,​ il est bien plus confortable de recourir à une interface graphique telle que\\ [[:​phpmyadmin]] (mysql et mariadb), [[:​postgresql#​clients_graphiques| pgadmin3 ou phppgadmin]] pour postgresql… </​note>​
 ===== Utilisation ===== ===== Utilisation =====
  
Ligne 16: Ligne 18:
  
   mysql>   mysql>
 +  ou
 +  MariaDB [(none)]>​
  
 Vous pouvez alors taper vos requêtes MySQL. N'​oubliez pas le point-virgule à la fin de la requête. Si vous l'​oubliez le prompt passe à la ligne. Vous pouvez alors taper vos requêtes MySQL. N'​oubliez pas le point-virgule à la fin de la requête. Si vous l'​oubliez le prompt passe à la ligne.
Ligne 24: Ligne 28:
 </​code>​ </​code>​
  
-Ce passage vous indique que la requête n'est pas terminée. Vous pouvez entrer vos requêtes de cette façon sur plusieurs lignes et enfin la clôturer ​avec le « **;** ».+Ce passage vous indique que la requête n'est pas terminée. Vous pouvez entrer vos requêtes de cette façon sur plusieurs lignes et enfin la clore avec le « **;** ».
  
 ==== Sélectionner la base de données à utiliser ==== ==== Sélectionner la base de données à utiliser ====
Ligne 61: Ligne 65:
 | Variable_name ​           | Value                      | | Variable_name ​           | Value                      |
 +--------------------------+----------------------------+ +--------------------------+----------------------------+
-| character_set_client ​    | utf8                       |  +| character_set_client ​    | utf8                       | 
-| character_set_connection | utf8                       |  +| character_set_connection | utf8                       | 
-| character_set_database ​  | utf8                       |  +| character_set_database ​  | utf8                       | 
-| character_set_filesystem | binary ​                    |  +| character_set_filesystem | binary ​                    | 
-| character_set_results ​   | utf8                       |  +| character_set_results ​   | utf8                       | 
-| character_set_server ​    | utf8                       |  +| character_set_server ​    | utf8                       | 
-| character_set_system ​    | utf8                       |  +| character_set_system ​    | utf8                       | 
-| character_sets_dir ​      | /​usr/​share/​mysqld/​charsets/​ | +| character_sets_dir ​      | /​usr/​share/​mysqld/​charsets/​ |
 +--------------------------+----------------------------+ +--------------------------+----------------------------+
 8 rows in set (0.00 sec) 8 rows in set (0.00 sec)
Ligne 114: Ligne 118:
  
 === Liste des tables de la base de données active === === Liste des tables de la base de données active ===
- 
 <code SQL> <code SQL>
-show tables;+SHOW tables;
 </​code>​ </​code>​
  
 === Structure d'une table === === Structure d'une table ===
- 
 <code SQL> <code SQL>
-describe ​nom_table;+DESCRIBE ​nom_table;
 </​code>​ </​code>​
  
 === Renommer une table === === Renommer une table ===
 +<code SQL>
 +ALTER TABLE nom_table RENAME AS nouveau_nom;​
 +</​code>​
  
 +=== Vider une table ===
 <code SQL> <code SQL>
-alter table nom_table ​rename as nouveau_nom;+TRUNCATE ​nom_table;
 </​code>​ </​code>​
  
Ligne 135: Ligne 141:
  
 ==== Utilisateurs ==== ==== Utilisateurs ====
 +
 +=== Lister les utilisateurs ===
 +<​code>​SELECT User FROM mysql.user;</​code>​
  
 === Créer un utilisateur === === Créer un utilisateur ===
  
 <code SQL> <code SQL>
-create user "nom_utilisateur"@"localhost";+CREATE USER 'nom_utilisateur'@'localhost'; 
 +# ou directement avec le mot de passe avec : 
 +CREATE USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED BY '​mon-mot-de-passe'​;
 </​code>​ </​code>​
  
Ligne 145: Ligne 156:
  
 <code SQL> <code SQL>
-set password for "nom_utilisateur"@"localhost" ​= password('​mot_de_passe'​);​+set password for 'nom_utilisateur'@'localhost' ​= password('​mot_de_passe'​);​
 </​code>​ </​code>​
  
Ligne 151: Ligne 162:
  
 <code SQL> <code SQL>
-drop user "nom_utilisateur"@"localhost";+drop user 'nom_utilisateur'@'localhost';
 </​code>​ </​code>​
- 
-=== Lister les utilisateurs === 
- 
-<code SQL> 
-select user from mysql.user; 
-</​code>​ 
- 
  
 ==== Privilèges ==== ==== Privilèges ====
Ligne 166: Ligne 170:
  
 <code SQL> <code SQL>
-grant all on nom_base.* to "nom_utilisateur"@"localhost";+grant all on nom_base.* to 'nom_utilisateur'@localhost;
 </​code>​ </​code>​
  
Ligne 172: Ligne 176:
  
 <code SQL> <code SQL>
-revoke all privileges on nom_base.* from "nom_utilisateur"@"localhost";+revoke all privileges on nom_base.* from 'nom_utilisateur'@localhost;
 </​code>​ </​code>​
  
Ligne 178: Ligne 182:
 ===== Autres opérations ===== ===== Autres opérations =====
  
-Qt4 avec Mysql:+Qt avec Mysql: 
 + 
 +Consulter la page [[https://​doc.qt.io/​qt-5/​sql-driver.html|drivers SQL pour Qt5]]
  
 Installer la librairie pour mysql afin de l'​utiliser sous QT : Installer la librairie pour mysql afin de l'​utiliser sous QT :
  
 <​code>​sudo apt-get install libqt4-sql-mysql</​code>​ <​code>​sudo apt-get install libqt4-sql-mysql</​code>​
- 
- 
  
 ==== Sauvegarde et importation ==== ==== Sauvegarde et importation ====
Ligne 190: Ligne 194:
 Pour **exporter** la base de donnée « maBase », utilisez la commande : Pour **exporter** la base de donnée « maBase », utilisez la commande :
  
-  ​mysqldump -u root -p maBase > maBase_backup.sql+<code bash>mysqldump -u root -p maBase > maBase_backup.sql</​code>​
  
 Ceci fera l'​export dans un fichier « maBase_backup.sql ». Ceci fera l'​export dans un fichier « maBase_backup.sql ».
Ligne 196: Ligne 200:
 Pour exporter une table (par exemple //​ma_table//​ )appartenant à une base des données (par exemple //maBase//) : Pour exporter une table (par exemple //​ma_table//​ )appartenant à une base des données (par exemple //maBase//) :
   ​   ​
-  ​mysqldump -u root -p maBase ma_table > ma_table.sql+<code bash>mysqldump -u root -p maBase ma_table > ma_table.sql</​code>​
  
 Ainsi nous aurons une exportation seulement de la table //​ma_table//​ sans toucher à d'​autres tables de la base des données Ainsi nous aurons une exportation seulement de la table //​ma_table//​ sans toucher à d'​autres tables de la base des données
Ligne 202: Ligne 206:
 Pour **importer** une base de données ou une sauvegarde sur « maBase », utilisez la commande : Pour **importer** une base de données ou une sauvegarde sur « maBase », utilisez la commande :
  
-  ​mysql -u root -p maBase < maBase_backup.sql +<code bash>mysql -u root -p maBase < maBase_backup.sql</​code>​ 
 + 
 Puis tapez votre mot de passe. Puis tapez votre mot de passe.
  
-<note tip> +ou si le dump est compressé :\\ 
-Si vous souhaitez mettre en place une solution de sauvegarde automatique de bases de données à intervalle régulier, rendez-vous sur le tutoriel traitant de la [[:​tutoriel:​sauvegarder_automatiquement_ses_bases_de_donnees|sauvegarde automatique de bases de données via cron]]+<code bash>gunzip < mabase2donnees.sql.gz | mysql -[uname] -p[pass[dbname]</code>
-</note>+
  
-D'​autres commandes telles que la suppression des tables, de la base, l'​ajout des données dans la base des données, etc. peuvent être trouvées sur le [[http://​dev.mysql.com/​doc/​refman/​5.0/​fr/​sql-syntax.html|site de documentation de MySQL]]. 
  
 +<note tip>
 +Si vous souhaitez mettre en place une solution de sauvegarde automatique de bases de données à intervalle régulier (quotidien/​hebdomadaire/​mensuel),​ rendez-vous sur la page [[:​automysqlbackup]].
 +</​note>​
  
 ==== Restauration à partir du dump du datadir ==== ==== Restauration à partir du dump du datadir ====
Ligne 241: Ligne 246:
 Mysql stocke ses fichiers dans le dossier /​var/​lib/​mysql. Il arrive avec le temps et l'​utilisation que le fichier ibdata1 occupe un espace disque très important qui ne sera pas récupéré même en supprimant toutes les bases. Mysql stocke ses fichiers dans le dossier /​var/​lib/​mysql. Il arrive avec le temps et l'​utilisation que le fichier ibdata1 occupe un espace disque très important qui ne sera pas récupéré même en supprimant toutes les bases.
  
-Pistes pour comprendre et corriger ce problème : +Pistes pour comprendre et corriger ce problème :
   * [[http://​bytes.com/​groups/​mysql/​495219-mysql-ibdata1-compact-space|Supprimer les tables InnoDB pour récupérer l'​espace]]   * [[http://​bytes.com/​groups/​mysql/​495219-mysql-ibdata1-compact-space|Supprimer les tables InnoDB pour récupérer l'​espace]]
   * [[http://​bugs.mysql.com/​bug.php?​id=1287|"​Bogue"​ associé]]   * [[http://​bugs.mysql.com/​bug.php?​id=1287|"​Bogue"​ associé]]
  • utilisateurs/bcag2/sql.1508873366.txt.gz
  • Dernière modification: Le 24/10/2017, 21:29
  • par bcag2