PrésentationMise en place des utilisateurs   |    Création d'une base de données  ]

Dernière modif 11 avril 2020

MariaDB

(Ce guide peut être téléchargé dans la section téléchargement)

Configuration LAMP

Présentation

Cette page n'a pas pour but de vous présenter ce qu'est un SGBD et encore moins de vous expliquer le langage SQL mais de faire des opérations basiques de création d'utilisateurs, de bases et de tables avec MariaDB qui vont servir d'exemples d'illustration  dans la page de configuration d'un serveur LAMP.
Pour une installation de MariaDB avec compilation complète voir la page correspondante.

On partira sur le principe que MariaDB est déjà installé et configuré (base de donnée initialisée et mot de passe root défini) en passant par le package de votre distribution préférée ou en compilant en utilisant les sources voir ma page installation apache+PHP+MariaDB pour cela.



[Retour haut de la page]

Mise en place des utilisateurs

On va créer un compte utilisateur (olivier dans mon exemple), pour cela on doit se connecter en tant qu'administrateur de la base à la base de donnée mysql contenant les infos sur les utilisateurs et leurs droits.

/usr/local/mysql/bin/mysql -u root -p mysql
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 25
Server version: 10.5.3-MariaDB Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(mysql)]>

A présent on va entrer l'utilisateur olivier qui sera un super utilisateur avec les mêmes droits que root:

MariaDB [(mysql)]> GRANT ALL PRIVILEGES ON *.* TO 'olivier'@'localhost'
         > IDENTIFIED BY 'mot-de-passe' WITH GRANT OPTION;

pour créer un utilisateur toto qui n'aura accès qu'à la base test avec certaines fonctions citées ci-dessous à partir de la machine asterix.fr on tapera

MariaDB [(mysql)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
            ON test.*
            TO toto@asterix.fr
            IDENTIFIED by 'mot-de-passe';
             
si  vous tapez

MariaDB [(mysql)]> SELECT * FROM user;

vous voyez chacun des droits attribués à vos utilisateurs, vous avez la possibilité également de préciser les droits en fonction de ces colonnes avec cette commande

MariaDB [(mysql)]>  INSERT INTO user
        ->  VALUES('localhost','olivier',PASSWORD('mot-de-passe'),
        ->  'Y','Y','Y','Y','Y','Y',' (...) Y','Y','Y','Y','Y','Y','Y', Y','Y','Y','Y','Y',' ',' ',' ',' ','0','0','0','0');
Query OK, 1 row affected (0.00 sec)

Le nombre de champ varie en fonction de la version de mysql.

NOTE Il n'est pas obligatoire de rentrer le login pour le nom d'utilisateur et le mot de passe de login.

Maintenant pour prendre tout ça en compte

MariaDB [(mysql)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.08 sec)

Pour quitter

MariaDB [(mysql)]>quit

[Retour haut de la page]

Création de tables

Maintenant notre utilisateur olivier va créer une table qui nous servira plus tard pour nos expérimentations avec Apache. Il doit d'abord se connecter:

/usr/local/mysql/bin/mysql -u olivier -p
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 25
Server version: 10.5.3-MariaDB Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Pour voir la liste des bases de données disponibles, on tapera:

MariaDB [(none)]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0,00 sec)

On va maintenant créer une base de données essai:

MariaDB [(none)]> CREATE DATABASE essai;
Query OK, 1 row affected (0.00 sec)

On va utiliser maintenant cette base de donnée

MariaDB [(none)]> USE essai
Database changed

Comme la base vient d'être crée, elle ne contient aucune table, pour s'en convaincre il suffit de taper:

MariaDB [(essai)]> SHOW TABLES;
Empty set (0.00 sec)

Pour notre première exemple Apache+PHP+MySQL, on va créer la table suivante:

MariaDB [(essai)]> CREATE TABLE coord (
    -> nom VARCHAR(20),
    -> prenom VARCHAR(20),
    -> email VARCHAR(30)
    -> );
Query OK, 0 rows affected (0.03 sec)

Jetons un coup d’œil maintenant sur les tables disponibles:

MariaDB [(essai)]>  SHOW TABLES;
+---------------------+
| Tables in essai    |
+---------------------+
| coord                  |
+---------------------+
1 row in set (0.00 sec)

La table nouvellement créée apparaît bien. Pour avoir le détail de cette table, on tapera:
 

MariaDB [(essai)]> DESCRIBE coord;
+-----------+--------------+--------+------+-----------+------+
| Field      | Type           | Null   | Key  | Default |Extra |
+-----------+--------------+--------+------+-----------+------+
| nom       | varchar(20) | YES  |          | NULL    |         |
| prenom  | varchar(20) | YES  |          | NULL    |         |
| email     | varchar(30) | YES  |          | NULL    |         |
+-----------+--------------+--------+------+-----------+------+
3 rows in set (0.00 sec)

Pour notre deuxième exemple Apache+PHP+MariaDB, on créera la table suivante:

 MariaDB [(essai)]> CREATE TABLE ref (
         -> date VARCHAR(20),
         -> host VARCHAR(20),
        -> ip VARCHAR(15),
        -> os VARCHAR(20),
        -> page VARCHAR(30)
        -> );
Query OK, 0 rows affected (0.05 sec)  

Elle contiendra les informations sur les visiteurs du site. A présent pour quitter tapez simplement quit.

Reportez vous maintenant à la page Apache et au paragraphe correspondant pour la manipulation de ces tables avec Apache+PHP.

[Retour page d'accueil FUNIX] [Retour haut de la page]