2. MySQL configuratie

Installatie van mysql-common en mysql-server

De minimale Debian installatie levert geen MySQL mee. Je installeert het pakket het eenvoudigste met behulp van het apt-get commando (als root of via sudo):

debian:~# apt-get install mysql-common
Reading Package Lists… Done
Building Dependency Tree… Done
The following NEW packages will be installed:
mysql-common
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 34.6kB of archives.
After unpacking 94.2kB of additional disk space will be used.
Get:1 http://ftp.belnet.be stable/main mysql-common 4.0.24-10sarge2 [34.6kB]
Fetched 34.6kB in 0s (220kB/s)
Selecting previously deselected package mysql-common.
(Reading database … 26595 files and directories currently installed.)
Unpacking mysql-common (from …/mysql-common_4.0.24-10sarge2_all.deb) …
Setting up mysql-common (4.0.24-10sarge2) …
debian:~# apt-get install mysql-server

Reading Package Lists… Done
Building Dependency Tree… Done
The following extra packages will be installed:
libdbd-mysql-perl libmysqlclient12 mysql-client
Suggested packages:
mysql-doc
The following NEW packages will be installed:
libdbd-mysql-perl libmysqlclient12 mysql-client mysql-server
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 4490kB of archives.
After unpacking 10.4MB of additional disk space will be used.
Do you want to continue? [Y/n] y

De machine moet haar eigen hostname kennen, anders werkt MySQL niet. Je kan testen of dat het geval is door het hostname commando te gebruiken. Geeft het de naam van de machine weer, dan is alles in orde. Indien niet, pas dan /etc/hosts aan, of nog beter, de configuratie van je naming service, bv. DNS.

Figuur 1.1. MySQL installatiehints

Debian configuratie screenshot

Afhankelijk van de versie van MySQL en je besturingssysteem, stel je het root wachtwoord voor de MySQL server in tijdens de installatie, of achteraf. Indien er tijdens de installatie van de pakketten niets gevraagd wordt, stel je het wachtwoord achteraf in als volgt:

debian:~# /usr/bin/mysqladmin -u root password 'jouw_wachtwoord_hier'
[Belangrijk]Systeem root != MySQL root

Verwar de MySQL root niet met de root gebruiker van je besturingssysteem. Beide staan los van elkaar en kunnen verschillende wachtwoorden hebben. De MySQL root gebruiker wordt gebruikt voor de administratiehandelingen met de MySQL database, terwijl de systeem root gebruiker systeembeheertaken uitvoert.

Verificatie van de installatie

Ga na of de pakketten correct geïnstalleerd zijn:

debian:~# dpkg -l *mysql* | grep ii
ii  libdbd-mysql-p 2.9006-1       A Perl5 database interface to the MySQL data
ii  libmysqlclient 4.0.24-10sarge mysql database client library
ii  mysql-client   4.0.24-10sarge mysql database client binaries
ii  mysql-common   4.0.24-10sarge mysql database common files (e.g. /etc/mysql
ii  mysql-server   4.0.24-10sarge mysql database server binaries

Je beschikt nu over de pakketten mysql-client, mysql-common, mysql-server en bijhorende bibliotheken.

Aanmaken van de database(s)

Voor elke site die je met Drupal wilt beheren, maak je best een aparte database aan. Dit kan je als gewone gebruiker:

tille@debian:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.24_Debian-10sarge2-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> create database site-1;
Query OK, 1 row affected (0.00 sec)

Voor de multi-site setup, waarbij meerdere sites met één enkele Drupal-instance beheerd worden, hebben we gelijk ook een database voor site-2 aangemaakt.

[Opmerking]Syntax

Let erop dat je elk mysql statement afsluit met een punt-komma (;), anders gebeurt er niets.

[Tip]Minder werk

Je kan de mysql statements opnieuw oproepen en wijzigen alvorens ze door te voeren, door gebruik te maken van de pijltjes op en neer, net zoals in Bash op de commandoregel.

Kijk als volgt na of de creatie gelukt is:

mysql> show databases;
+—————+
| Database |
+—————+
| mysql    |
| site-1   |
| site-2   |
| test     |
+—————+
4 rows in set (0.00 sec)

De mysql en test databases zijn standaard aanwezig.

Aanmaken van de databasegebruikers

Maak voor elke database een gebruiker en een bijhorend wachtwoord aan:

mysql> GRANT ALL PRIVILEGES ON site-1.* TO 'gebruiker-1'@'localhost' IDENTIFIED BY 'wachtwoord-1';
Query OK, 0 rows affected (0.00 sec)

Je mag nu de MySQL monitor toepassing verlaten:

mysql> quit
Bye
tille@debian:~$
randomness