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.
-
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)
- in Ubuntu:
-
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
.
-
mySQL root paswoord instellen
# mysqladmin -u root password sdf12345
-
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.
-
bestaande databases opvragen
mysql> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | allusers | | mysql | | ttest1 | +--------------------+ 4 rows in set (0.00 sec)
-
een nieuwe database creëren
mysql> create database linux31;
Query OK, 1 row affected (0.00 sec)
-
een database voor gebruik selecteren
mysql> use linux31;
Database changed
-
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)
-
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)
-
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)
-
structuur van een database opvragen
mysql> show tables;
+-------------------+ | Tables_in_linux31 | +-------------------+ | studenten | +-------------------+ 1 row in set (0.00 sec)
-
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)
-
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)
-
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)
-
een tabel verwijderen
mysql> drop table studenten;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables
-> ;
Empty set (0.00 sec)
-
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)
-
mySQL verlaten
mysql> quit;
Bye