home       inleiding       sysadmin       services       links       bash       werk       nothing      

mySQL command line interface

 
Als we een apache2-webserver beheren, moeten er regelmatig mySQL databases worden aangemaakt, vaak voorzien van een user-account en credentials.
De snelste manier om dit te doen is via de command line.
 

  1. mySQL installeren

     

    • in Ubuntu: # apt-get install mysql-server
    • in CentOS: # yum install mariadb
       
      Tijdens de installatie wordt er een root-mysql paswoord gevraagd:
      +--------------------- Configuring mysql-server-X.y ----------------------+
      | While not mandatory, it is highly recommended                           |
      | that you set a password for the MySQL                                   |
      | administrative "root" user.                                             |
      |                                                                         |
      | If this field is left blank, the password will not be changed.          |
      |                                                                         |
      | New password for the MySQL "root" user: sdf12345                        |
      | ----------------------------------------------------------------------- |
      |                                        <Ok>                             |
      +-------------------------------------------------------------------------+

      Als je systeem hier niet om vraagt kun je dit paswoord ook instellen via de shell (zie verder)
       

  2. php en mySQL laten samenwerken

     
    Om PHP en mySQL te laten samenwerken moet je het pakket php-mysql installeren:
     
    # apt-get install php-mysql
     
    Na installatie van deze module moet apache2 herstart worden met
    # systemctl restart apache2.service.
     

  3. mySQL root paswoord instellen

     
    # mysqladmin -u root password sdf12345
     

  4. inloggen in mySQL

     
    # mysql -u root -p mysql
    Enter password:

    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 48
    Server version: 5.1.49-1 (Debian)
     
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
     
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

     

  5. bestaande databases opvragen

     
    mysql> show databases;

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | allusers           |
    | mysql              |
    | ttest1             |
    +--------------------+
    4 rows in set (0.00 sec)

     

  6. een nieuwe database creëren

     
    mysql> create database linux31;
    Query OK, 1 row affected (0.00 sec)
     

  7. een database voor gebruik selecteren

     
    mysql> use linux31;
    Database changed
     

  8. een tabel aanmaken

     
    mysql> create table studenten
    -> (
    -> naam varchar(20) not null,
    -> voornaam varchar(20) not null
    -> )
    -> ;
    Query OK, 0 rows affected (0.01 sec)
     

  9. data invoeren in een tabel

     
    mysql> insert into studenten values ('schneider','mike');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> insert into studenten values ('markaj','aferdita');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> insert into studenten values ('sensio','denis');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> insert into studenten values ('shyaka','bernard');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> insert into studenten values ('akram','shoaib');
    Query OK, 1 row affected (0.01 sec)
     
    mysql> insert into studenten values ('kubwimana','flora');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> insert into studenten values ('viwassi','horatio');
    Query OK, 1 row affected (0.00 sec)
     

  10. data opvragen uit een tabel

     
    mysql> select * from studenten;

    +-----------+----------+
    | naam      | voornaam |
    +-----------+----------+
    | schneider | mike     |
    | markaj    | afrodita |
    | sensio    | dennis   |
    | shyaka    | bernard  |
    | akram     | shoaib   |
    | kubwimana | flora    |
    | viwassi   | horatio  |
    +-----------+----------+
    7 rows in set (0.00 sec)

     

  11. structuur van een database opvragen

     
    mysql> show tables;

    +-------------------+
    | Tables_in_linux31 |
    +-------------------+
    | studenten         |
    +-------------------+
    1 row in set (0.00 sec)

     

  12. structuur van een tabel opvragen

     
    mysql> describe studenten;

    +----------+-------------+------+-----+---------+-------+
    | Field    | Type        | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | naam     | varchar(20) | NO   |     |         |       |
    | voornaam | varchar(20) | NO   |     |         |       |
    +----------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)

     

  13. een gebruiker aanmaken met alle rechten

     
    Je moet ingelogd zijn als mysql root gebruiker om dit commando uit te voeren.
     
    mysql> CREATE USER 'user2'@'localhost' IDENTIFIED BY 'sdf12345';
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.00 sec)
     

  14. records verwijderen

     
    mysql> DELETE FROM studenten WHERE naam='sensio';
    Query OK, 1 row affected (0.00 sec)
     
    mysql> select * from studenten;

    +-----------+----------+
    | naam      | voornaam |
    +-----------+----------+
    | schneider | mike     |
    | markaj    | aferdita |
    | shyaka    | bernard  |
    | akram     | shoaib   |
    | kubwimana | flora    |
    | viwassi   | horatio  |
    +-----------+----------+
    6 rows in set (0.00 sec)

     

  15. een tabel verwijderen

     
    mysql> drop table studenten;
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> show tables
    -> ;
    Empty set (0.00 sec)
     

  16. een database verwijderen

     
    mysql> drop database linux31;
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> show databases;

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    +--------------------+
    2 rows in set (0.00 sec)

     

  17. mySQL verlaten

     
    mysql> quit;
    Bye