Notes config serveur MariaDB/MySQL/PHPMyAdmin

7. Utilisation de MySQL en ligne de commande

L’interface SQL "ligne de commande"

  1. MySQL possède une simple interface "ligne de commande"
    les commandes SQL doivent être séparées par un " ; " (!!!)
    Les exemples suivants supposent que vous avez accès à une base de données

  2. Connexion à un serveur MySQL (depuis un terminal unix / telnet)
    mysql -h machine -u utilisateur -p [base_de_données]
    -h: machine hôte
    -u: utilisateur MySQL (pas Unix)
    -p: mot de passe MySQL (pas Unix)
    mysql -h tecfasun5 -u schneide -p Enter password:

  3. Utilisation/changement d’une base de données (USE)
    mysql> USE demo;
    ou directement lors de la connexion:
    mysql -h tecfa -u schneide -p demo

  4. Lister les tables (SHOW)

    SHOW TABLES;  
    +----------------+  
    | Tables in demo |  
    +----------------+  
    | demo1          |  
    | test           |
    
  5. Décrire la structure d’une table (DESCRIBE)

    DESCRIBE demo1;  
    +----------+--------------+------+-----+---------+----------------+  
    | Field    | Type         | Null | Key | Default | Extra          |  
    +----------+--------------+------+-----+---------+----------------+  
    | id       | int(10)      |      | PRI | 0       | auto_increment |  
    | login    | varchar(10)  |      | MUL |         |                |  
    | password | varchar(100) | YES  |     | NULL    |                |  
    | fullname | varchar(40)  |      |     |         |                |  
    | url      | varchar(60)  |      |     |         |                |  
    | food     | int(11)      |      |     | 0       |                |  
    | work     | int(11)      |      |     | 0       |                |  
    | love     | int(11)      |      |     | 0       |                |  
    | leisure  | int(11)      |      |     | 0       |                |  
    | sports   | int(11)      |      |     | 0       |                |  
    +----------+--------------+------+-----+---------+----------------+
    

Traitement en "batch"

mysql -h hote -u user -p demo < test.mysql

Le contenu du fichier test.mysql contient les commandes SQL pour créer une table, voir par exemple 4.5 “Création de tables (CREATE)” [22]
N’oubliez pas d’indiquer votre base de données ("demo" ci-dessus) !
Note: si la table existe déjà, il faut la tuer avec "DROP TABLE if exists" (sinon utiliser ALTER pour modifier sa structure)
DROP TABLE [IF EXISTS] table
Ex: DROP TABLE demo2
Ex: DROP TABLE if exists demo4

Sauvegardes

On peut "dumper" une base de données en entier
Cela crée les commandes SQL pour tout restituer (y compris les INSERT)
Avec l’utilitaire ’mysqldump’ (sortir de mysql!):
mysqldump -h hote -u user -p demo > save.mysql

Lister des bases de données, tables, etc.

Note: ’vivian’ dans les exemples est à la fois un nom d’utilisateur et de base de données.
Lister toutes les bases de données sur un serveur:

mysqlshow -h hote -u bob -p
mysqlshow -h hote -u bob --password=******

Lister les tables dans une base de données

mysqlshow -h hote -u bob -p vivian
mysqlshow -h hote -u bob --password=****** bob

Lister la définition d’une table

mysqlshow -h hote -u bob -p bob test