MySQL (MariaDB)
Contents
Base de données, usagers, droits
Sous Debian GNU/Linux, le mot de passe root pour la base de données est configuré lors de l’installation du logiciel. Notez que le compte root pour la base de données n’a rien en commun avec le compte root du système d’exploitation. Sous certaines vieilles versions de MySQL, il n’y avait pas de mot de passe pour le compte root, on peut donc se connecter sans l’option "-p".
Création d’une nouvelle base de données :
Créer un nouvel utilisateur et lui donner les droits sur la nouvelle base de données :
C’est la façon la plus simple de démarrer. Noter que cette commande sous-entend que l’utilisateur se connecte localement (@localhost).
Pour les petits détails sur les droits, les utilisateurs, etc, la base de données ’mysql’ contient tout les infos pour la gestion :
Après avoir modifié des permissions, il est important d’exécuter, à partir de la ligne de commande shell :
Exemples de commandes SQL
Vous devriez maintenant avoir la base pour commencer à jouer un peu dans MySQL :
("-p" indique que l’on veut entrer un mot de passe)
Afficher des bases de données disponibles sur le serveur :
Sélectionner la base de donnée créée :
Afficher plus d’informations sur cette base de donnée :
Créer une table :
"Décrire" la table créée :
Insérer des données dans la table :
(Pas besoin d’insérer dans "id", parce que la donnée va être allouée par le ’auto_increment’)
Extraire des informations :
Effacer une entrée dans la table :
Effacer la table :
Autre documentation
Pour plus d’information :
MySQL : informations variées pour développeurs
MySQL : le manuel de référence
Exporter les données en format CSV
$ mysqldump -u totouser -p --tab=/tmp/ --fields-enclosed-by=\" --fields-terminated-by=, NOM-DE-LA-DB NOM-DE-LA-TABLE
Notes:
- Il faut avoir les permissions “file” (ça fait l’équivalent de “SELECT INTO OUTFILE”)
- Le nom de la table est optionnel, mysqldump va créer un fichier par table dans le répertoire –tab (/tmp dans cet exemple)
Tailles des tables SQL
SELECT TABLE_NAME, SUM(DATA_LENGTH + INDEX_LENGTH)/1024/1024 as mb
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'db-foo-name-here'
GROUP BY TABLE_NAME
ORDER BY mb DESC
LIMIT 10;