Création section Utilisation courante (TL;DR)

This commit is contained in:
whirigoyen 2023-12-15 10:25:49 +01:00
parent e3fefa301c
commit 6a311734e5

View file

@ -334,6 +334,7 @@ tmpdir = /srv/mysql-tmpdir
Déplacé sur la page de [Percona Toolkit](HowtoPerconaToolkit#pt-show-grants)
## Logs
Sous Debian, les journaux de MySQL (démarrage, arrêt, erreurs, informations) sont envoyés via *syslog*.
@ -341,6 +342,99 @@ Par défaut, ils seront donc visibles dans `/var/log/syslog`.
Le répertoire `/var/log/mysql/` contient les *binlogs* (trace de toutes les requêtes INSERT/UPDATE/DELETE exécutées).
## Utilisation courante (TL;DR)
Se connecter :
~~~
mysql [--defaults-group-suffix=1]
~~~
Attention :
* Les noms contenant des traits d'union ou un wildcard `%` doivent être mis entre des backquotes : `foo-bar`
### Bases de données
Lister les bases :
~~~{.sql}
> SHOW DATABASES;
~~~
Ajouter une base :
~~~{.sql}
> CREATE DATABASE <DB_NAME>;
~~~
**Note :** si on veut créer un utilisateur et une table du même nom, on préfèrera utiliser la commande shell `# mysqladmin create <NAME>`.
Supprimer une base :
~~~{.sql}
> DROP DATABASE <DB_NAME>;
~~~
Utiliser (ou entrer dans) une base :
~~~{.sql}
> USE <DB_NAME>;
~~~
Lister les tables de la base :
~~~{.sql}
> SHOW TABLES;
~~~
### Utilisateurs
**Attention :**
* Les permissions et mots de passe ne sont pas spécifiques à un utilisateur, mais à un triplet utilisateur/hôte/base.
* Par défaut, on utilisera l'hôte `localhost`.
**Lister** les utilisateurs :
~~~{.sql}
> SELECT host, user FROM mysql.user [WHERE db=<BD_NAME> ORDER BY user];
~~~
**Lister** les privilèges dun utilisateur/hôte :
~~~{.sql}
> SHOW GRANTS FOR <USER>@<HOST>;
~~~
**Ajouter** un accès utilisateur/hôte avec tous les droits sur une base :
~~~{.sql}
# Si on connaît le mot de passe
> GRANT ALL PRIVILEGES ON <DB_NAME>.* TO <USER>@<HOST> IDENTIFIED BY '<PASSWORD>';
# En réutilisant le hash d'un mot de passe non connu (obtenu plus haut avec SHOW GRANTS)
> GRANT ALL PRIVILEGES ON <DB_NAME>.* TO <USER>@<HOST> IDENTIFIED BY PASSWORD '<HASH>';
~~~
**Note :** si on veut créer un utilisateur et une base du même nom, on préfèrera la commande shell `mysqladmin create <NAME>`.
**Révoquer** les accès d'un utilisateur/hôte à une base (attention un utilisateur peut avoir des permissions avec plusieurs hôtes !) :
~~~{.sql}
> REVOKE ALL PRIVILEGES ON <DB_NAME>.* FROM <USER>@<HOST>;
~~~
**Supprimer** un couple utilisateur/hôte :
~~~{.sql}
> DROP USER <USER>@<HOST>;
~~~
## Utilisation courante
### Créer