MySQL is een van de po­pu­lair­ste open source databases. Het staat bekend om zijn pres­ta­ties, be­trouw­baar­heid en schaal­baar­heid en wordt op veel ver­schil­len­de gebieden gebruikt, van kleine web­hos­ting­sys­te­men tot grote on­der­ne­min­gen. In dit artikel leggen we stap voor stap uit hoe u MySQL op Ubuntu 20.04 in­stal­leert, zodat u een be­trouw­baar da­ta­ba­se­be­heer­sys­teem kunt opzetten.

Wat zijn de vereisten voor het in­stal­le­ren van MySQL op Ubuntu 20.04?

Er zijn relatief weinig sys­teem­ver­eis­ten voor het in­stal­le­ren van MySQL op Ubuntu 20.04, waaraan de meeste moderne desktop- en ser­ver­sys­te­men zouden moeten voldoen. Het is be­lang­rijk om op te merken dat de vereisten kunnen variëren, af­han­ke­lijk van het beoogde doel en de omvang van de database. Als u bij­voor­beeld een in­ten­sie­ve ap­pli­ca­tie wilt draaien die ge­bruik­maakt van grote databases of complexe query’s, zullen de RAM en ver­wer­kings­kracht die nodig zijn om goede pres­ta­ties te ga­ran­de­ren hoger zijn. U moet ook voldoende ruimte op uw harde schijf hebben om toe­kom­sti­ge groei en de toe­voe­ging van meer databases mogelijk te maken.

Con­tro­leer uw net­werk­con­fi­gu­ra­tie en fire­wal­lin­stel­lin­gen om een soepele com­mu­ni­ca­tie tussen de MySQL-server en clients te ga­ran­de­ren. De MySQL-server moet een statisch IP-adres hebben om problemen met de ver­bin­ding te voorkomen.

Hier zijn de minimale vereisten voor het in­stal­le­ren van MySQL:

  • Processor (CPU): x86-64-ar­chi­tec­tuur, min. 1 GHz (dual-core)
  • RAM: min. 1 GB
  • Be­stu­rings­sys­teem: Ubuntu 20.04, een ge­brui­kers­ac­count met sudo- en root-rechten
  • Firewall: MySQL-poort 3306 open
  • Ruimte op harde schijf: min. 500 MB
  • In­ter­net­ver­bin­ding: vereist voor het down­lo­a­den van pakketten en het verbinden met de MySQL-server

Staps­ge­wij­ze hand­lei­ding voor het in­stal­le­ren van MySQL op Ubuntu 20.04

MySQL kan op Ubuntu 20.04 worden ge­ïn­stal­leerd met behulp van het pak­ket­be­heer­sys­teem APT (Advanced Package Tool). Na de in­stal­la­tie moet u het programma instellen en con­fi­gu­re­ren. Hiervoor hebt u het root-wacht­woord en toegang tot externe clients nodig. Hieronder laten we u stap voor stap zien hoe u MySQL op Ubuntu 20.04 in­stal­leert.

Stap 1: Pak­ket­in­dex bijwerken

Al­ler­eerst is het een goed idee om ervoor te zorgen dat uw lijst met pakketten up-to-date is. Hiervoor kunt u de volgende opdracht gebruiken:

$ sudo apt update
bash

Stap 2: In­stal­leer de MySQL-server

In­stal­leer ver­vol­gens het MySQL-ser­ver­pak­ket met APT:

$ sudo apt install mysql-server
bash

Om te con­tro­le­ren of de server actief is, kunt u deze handmatig starten met het commando systemctl.

$ sudo systemctl start mysql.service
bash

Stap 3: MySQL con­fi­gu­re­ren

MySQL voldoet direct na in­stal­la­tie niet aan de aan­be­vo­len be­vei­li­gings­nor­men. Om dit te verhelpen, gebruikt u het script dat door MySQL wordt aan­ge­bo­den om de in­stel­lin­gen te wijzigen en de server beter te be­vei­li­gen. Hiermee stelt u het root-wacht­woord in, ver­wij­dert u anonieme ge­brui­kers en beperkt u externe toegang.

Je moet bepaalde voor­zorgs­maat­re­ge­len nemen om ervoor te zorgen dat je het script correct uitvoert. De app wil het wacht­woord voor het root-account wijzigen, dat standaard is ge­de­ac­ti­veerd op Ubuntu. Om een fout te voorkomen, moet je de au­then­ti­ca­tie­me­tho­de van root-ge­brui­kers aanpassen.

Start hiervoor de MySQL-op­dracht­prompt:

$ sudo mysql
bash

Gebruik het commando ALTER USER om een wacht­woord voor root in te stellen:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Sluit de MySQL-op­dracht­prompt:

mysql> exit
bash

Voer het be­vei­li­gings­script uit:

$ sudo mysql_secure_installation
bash

Om de root­ge­brui­ker te au­then­ti­ce­ren, voert u het volgende in:

$ mysql -u root -p
bash

Nadat het script is voltooid, kunt u de stan­daard­au­then­ti­ca­tie­me­tho­de opnieuw wijzigen:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
bash

Hierdoor kunt u opnieuw ver­bin­ding maken met het sudo mysql-comm ando.

Stap 4: MySQL-ge­brui­kers instellen

Bij het in­stal­le­ren van MySQL wordt een root­ge­brui­ker aan­ge­maakt die alle rechten voor de MySQL-server heeft en volledige controle over databases, tabellen en ge­brui­kers. Om de vei­lig­heid te vergroten, moet u een gebruiker met beperkte rechten aanmaken.

Open hiervoor de MySQL-op­dracht­prompt:

$ sudo mysql
bash

Als u een wacht­woord als au­then­ti­ca­tie­me­tho­de hebt ingesteld, gebruikt u het volgende:

$ mysql -u root -p
bash

Maak nu een nieuwe gebruiker aan voor MySQL:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

Voer uw ge­brui­kers­naam in op de plaats van ‘ge­brui­kers­naam’ en de naam van uw host op de plaats van ‘host’. Als u Ubuntu lokaal gebruikt, schrijft u localhost. De uit­druk­king ‘WITH au­then­ti­ca­ti­on_plugin’ is optioneel. De plug-in ‘auth_socket’ heeft strenge be­vei­li­gings­in­stel­lin­gen en vereist geen wacht­woord om in te loggen.

Tenzij anders aan­ge­ge­ven, gebruikt MySQL de plug-in ‘caching_sha2_password’ voor au­then­ti­ca­tie. Sommige versies van PHP zijn hier echter niet com­pa­ti­bel mee. In plaats daarvan kunt u de beproefde plug-in ‘mysql_native_password’ gebruiken:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Of gebruik de functie ‘alter’ voor een bestaande gebruiker:

mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Stap 5: Pri­vi­le­ges toewijzen

Nu is het tijd om in te stellen welke rechten de nieuwe gebruiker krijgt. De syntaxis hiervoor is:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

Pri­vi­le­ges worden ge­schei­den door een komma. Om algemene pri­vi­le­ges te verlenen, vervangt u ‘database.table’ door een asterisk ‘*’.

In het volgende voorbeeld verlenen we een gebruiker toe­stem­ming om databases aan te maken (CREATE), te wijzigen (ALTER) en te ver­wij­de­ren (DROP) en om gegevens in een tabel in te voegen (INSERT), te se­lec­te­ren (SELECT), bij te werken (UPDATE) en te ver­wij­de­ren (DELETE).

mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
bash

‘MET GRANT-OPTIE’ geeft de gebruiker toe­stem­ming om de pri­vi­le­ges die hij heeft aan andere ge­brui­kers te geven.

Leeg nu de cache met ‘FLUSH PRI­VI­LE­GES’:

mysql> FLUSH PRIVILEGES;
bash

Daarna kunt u de MySQL-op­dracht­prompt sluiten:

mysql> exit
bash

Nu kunt u inloggen met de nieuwe ge­brui­kers­naam:

$ mysql -u username -p
bash

Stap 6: MySQL testen

Con­tro­leer of MySQL correct werkt met bij­voor­beeld de sys­teem­be­heer­der Systemd:

$ systemctl status mysql.service
bash

Je kunt ook ver­bin­ding maken met de MySQL-database. Met het volgende commando log je in op MySQL en wordt de ser­ver­ver­sie weer­ge­ge­ven:

$ sudo mysqladmin -p -u username version
bash
Ga naar hoofdmenu