Een MySQL database inrichten

Dit is een voorbeeld hoe je het kunt aanpakken. Ik hoop dat je hiermee een database naar je eigen behoeftes kunt inrichten.

We gaan een database maken waarin de datum, temperatuur en locatie kan worden opgeslagen.
De user pi kan data in de database zetten en de user weppie kan data uit de database lezen.

1. maak verbinding met de database:
    mysql -p -u root 
2. maak een nieuwe database met de naam Temp_Database:
    CREATE DATABASE Temp_Database; 
3. kijk of de database is gemaakt:
    SHOW DATABASES; 
3a het resultaat:
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | Temp_Database      |
    | mysql              |
    | performance_schema |
    +--------------------+
  
4. nu MySQL aangeven dat we database Temp_Database willen gebruiken:
    USE Temp_Database;
5. maak een tabel Metingen met daarin de velden Datum, Temperatuur en Locatie waarbij we Datum als key willen gebruiken:
    CREATE TABLE Metingen( Datum VARCHAR(10) NOT NULL, 
                   Tijd VARCHAR(8) NOT NULL,
                   Locatie VARCHAR(15) NOT NULL,
                   Temperatuur FLOAT(5,2) NOT NULL,
                   Locatie VARCHAR(15) NOT NULL );
6. kijk of de tabel is gemaakt:
    SHOW TABLES;
6a het resultaat:
    +-------------------------+
    | Tables_in_Temp_Database |
    +-------------------------+
    | Metingen                |
    +-------------------------+
  
7. bekijk de structuur van de tabel Metingen:
    EXPLAIN Metingen; 
7a het resultaat:
    +-------------+-------------+------+-----+---------+-------+
    | Field       | Type        | Null | Key | Default | Extra |
    +-------------+-------------+------+-----+---------+-------+
    | Datum       | varchar(10) | NO   |     | NULL    |       |
    | Tijd        | varchar(8)  | NO   |     | NULL    |       |
    | Temperatuur | float(5,2)  | NO   |     | NULL    |       |
    | Locatie     | varchar(15) | NO   |     | NULL    |       |
    +-------------+-------------+------+-----+---------+-------+
  
8. maak een nieuwe user pi met wachtwoord raspberry waarmee ik wil kunnen schrijven in database Temp_Database in de tabel Metingen:
    CREATE USER 'pi'@'localhost' IDENTIFIED BY 'raspberry'; 
9. schrijfpermissies geven aan user pi:
    GRANT INSERT ON Temp_Database.Metingen TO 'pi'@'localhost';  
10. maak een nieuwe user weppie met wachtwoord weppie waarmee ik wil kunnen lezen uit database Temp_Database uit de tabel Metingen:
    CREATE USER 'weppie'@'localhost' IDENTIFIED BY 'weppie'; 
11. leespermissie geven aan user weppie:
    GRANT SELECT ON Temp_Database.Metingen TO 'weppie'@'localhost'; 
12. laad alle privileges die gewijzigd zijn opnieuw voor alle users:
    FLUSH PRIVILEGES; 
14. bekijk nu welke users er zijn:
    SELECT user,host FROM mysql.user; 
14a het resultaat:
    +------------------+------------------+
    | user             | host             |
    +------------------+------------------+
    | root             | 127.0.0.1        |
    | root             | ::1              |
    | debian-sys-maint | localhost        |
    | pi               | localhost        |
    | root             | localhost        |
    | weppie           | localhost        |
    +------------------+------------------+
  
13. bekijk nu de rechten van user pi:
    SHOW GRANTS for 'pi'@'localhost'; 
13a het resultaat:
    +-----------------------------------------------------------------------------------------------------------+
    | Grants for pi@localhost                                                                                   |
    +-----------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'pi'@'localhost' IDENTIFIED BY PASSWORD '*1844F2B11CCAEF3B31F573A1384F608BB6DE3DF9' |
    | GRANT INSERT ON `Temp_Database`.`Metingen` TO 'pi'@'localhost'                                            |
    +-----------------------------------------------------------------------------------------------------------+
  
14. bekijk nu de rechten van user weppie:
    SHOW GRANTS for 'weppie'@'localhost'; 
14a het resultaat:
    +---------------------------------------------------------------------------------------------------------------+
    | Grants for weppie@localhost                                                                                   |
    +---------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'weppie'@'localhost' IDENTIFIED BY PASSWORD '*ACD1F06FBF93ED28BCF9F8A1BEE385E932D6A71D' |
    | GRANT SELECT ON `Temp_Database`.`Metingen` TO 'weppie'@'localhost'                                            |
    +---------------------------------------------------------------------------------------------------------------+
  
15. beeindig de verbinding met de database:
    quit

Hier zijn nog wat algemene queries