Achter elke website staat een sterke database, en vaak draait die op MySQL. Het leren van hoe je je server moet installeren is vaak de eerste echte test voor een beginnende webmaster of developer. Gelukkig biedt MySQL Community Server een handige, gratis en open source manier om hiermee aan de slag te gaan.

Wat maak MySQL Community Server tot de beste database software? Welke andere software is vergelijkbaar? En hoe krijg je dit goed geïnstalleerd op je webserver?

We zullen dat en meer behandelen in dit artikel. Je leert alles wat je moet weten om een MySQL Community Server op je computer te installeren en in te stellen.

Aan de slag dus!

Wat is een MySQL Community Server?

Bijna elke website heeft een database nodig. De enige websites die dit niet nodig hebben zijn heel kleine websites met alleen enkele statische pagina’s. Een database vereenvoudigt het beheren van grotere hoeveelheid content, door een overzichtelijke structuur te bieden.

Een WordPress database met tabellen en rijen.
Een WordPress database met tabellen en rijen.

In WordPress slaat de database hele artikelen, pagina’s en andere data op, zoals tags en reacties. Daarnaast, als bepaalde data veranderd, toegevoegd of verwijderd kan worden, zal het waarschijnlijk opgeslagen worden in een database. Daarom kan je je goed voorstellen hoeveel data er eigenlijk in een database zit.

SQL is de afkorting voor Structured Query Language. Het is een webtaal, net als JavaScript of HTML. SQL wordt vooral gebruikt om databases te beheren en te bewerken. Alhoewel er zeker alternatieven zijn, is SQL verreweg de populairste keuze op de meeste website.

SQL is de taal die je nodig hebt om je database te besturen, maar je hebt een database management systeem nodig om de daadwerkelijke database op te slaan. En daar komt MySQL om de hoek kijken.

Als het populairste database management systeem op de markt, is MySQL de standaardkeuze voor de meeste developers en webbeheerders voor wanneer ze een database op hun server moeten installeren.

Is MySQL Community Server gratis?

Alhoewel er ook een betaalde versie van MySQL bestaat voor grote organisaties, zitten alle kernfuncties die je waarschijnlijk zult gebruiken in de MySQL Community Edition. Daarnaast is het gratis te downloaden op alle meer dan 20 ondersteunde besturingssystemen, zonder verborgen kosten of addertjes onder het gras.

MySQL Community Server komt dus echt zonder mitsen en maren!

MySQL Community Downloads
MySQL Community Downloads

Daarnaast is het verkrijgbaar onder de GPL Licentie. Dat betekent dat het gratis en open source is, en gebruikt en aangepast mag worden voor commerciële projecten. Je zult daarom geen juridische problemen krijgen bij standaard gebruik van MySQL op je server.

Desalniettemin zou het wel kunnen dat je je hele project moet publiceren onder de GPL licentie als je de broncode zou verspreiden, dus lees in die gevallen de licentie wel even goed door.

Vergeleken met andere software, waarbij je meestal moet betalen voor gebruik of heel beperkte gratis versies krijgt, is MySQL dus de ideale keuze.

Belangrijke dingen om te weten over MySQL Community Server

Zoals alle software heeft ook MySQL beperkingen waar je rekening mee moet houden. Enkele beperkingen komen door foutjes. Andere ontstaan doordat een programma maar een bepaalde hoeveelheid data kan opslaan.

Hoe het ook zij, je moet rekening met deze beperkingen houden vanaf het begin, en eventueel een alternatief zoeken voor je project als ze niet aan je eisen voldoen.

Dit zijn de belangrijkste beperkingen om rekening mee te houden:

  • Maximale grootte van tabellen: Er zijn enkele harde beperkingen aan het aantal rijen en kolommen. Je kan maximaal 4096 kolommen in één tabel hebben, al kan dit soms nog minder zijn. Daarnaast mag elke rij maximaal 65.535 bytes bevatten.
  • MySQL legt beperkingen op: Zelfs wanneer je opslag meer kolommen en grotere rijen ondersteunt, zal MySQL niet toestaan dat je boven deze limieten uitkomt.
  • Windows legt nog striktere beperkingen op: Windows versies van MySQL hebben nog meer beperkingen. 32-bit versies van Windows kunnen niet meer dan 2GB aan RAM gebruiken in een proces. Daarnaast kan een Windows server maximaal 4000 poorten gebruiken, die snel vol kunnen raken wanneer veel clients verbinding maken met je database.
  • Beperkingen in functies en routines: MySQL heeft diverse zelf opgelegde beperkingen qua functies en routines waar je rekening mee moet houden.
  • Grote databases bieden slechte prestaties: Als het gaat om enorme databases met heel veel opgeslagen content die doorzocht moet worden, kan MySQL traag worden. Zelfs het maken en herstellen van back-ups kan dan een probleem worden.
  • Wees voorzichtig met geheugen: Geheugenproblemen kunnen een enorm probleem zijn met MySQL, en wanneer het geheugen vol zit, kan het soms onduidelijk zijn wat het probleem veroorzaakt heeft.

Alhoewel bovenstaande lijst je misschien onzeker maakt: elke database management systeem voordelen en nadelen, en MySQL is alsnog heel geschikt voor de meeste projecten. Websites met big data of van enorme organisaties kunnen misschien tegen de grenzen van MySQL aanlopen, maar kleinere projecten en normaal actieve websites zullen echt geen problemen tegenkomen.

MySQL Community Server en MySQL Enterprise Edition

MySQL is verkrijgbaar in twee verschillende versie: de Community Server en de Enterprise Edition. De eerste is de open source versie van MySQL die iedereen kent en gebruikt. De Enterprise Edition biedt een betaalde maar robuustere optie voor website van grote organisaties.

MySQL Enterprise Edition.
MySQL Enterprise Edition.

Nog enkele tips voor beveiliging:

  • Versleutelen van wachtwoorden: Het opslaan van niet-versleutelde wachtwoorden in een database kan extreem gevaarlijk zijn. Volg dus altijd de richtlijnen voor wachtwoorden en versleutel alle wachtwoorden. Wanneer je een WordPress plugin gebruikt, zullen zij dit meestal voor je doen.
  • Beperk de toegang voor gebruikers Geef nooit een non-root gebruiker toegang tot de tabel met gebruikers.
  • Gebruik nooit de root user voor je server: Op Linux systemen moet je nooit de MySQL server uitvoeren vanaf de root user, aangezien die overal toegang toe heeft, en hackers daarmee heel veel schade kunnen aanrichten.
  • Beperk rechten: Wijs de juiste accountrechten toe aan gebruikers en geef ze nooit meer toegang dan noodzakelijk. Vereis van al je gebruikers dat ze een wachtwoord gebruiken.
  • Verbied code in formulieren: Zorg ervoor dat gebruikers nooit code kunnen uitvoeren op je website via inputvelden (zoals formulieren).
  • Gebruik een firewall: Gebruik een firewall op je database server om ongewenste verbindingen te blokkeren.
  • Gebruik SSL: SSL versleutelt je website om alle data die via je server loopt te verbergen.
  • Verwijder de testdatabase: Verwijder de testdatabase (als “mysql_secure_installation” dit nog niet gedaan heeft), aangezien iedereen er toegang toe heeft.

Zo installeer je MySQL Community Server op Windows

Ken je Linux niet zo goed? Of draait je server op een Windows computer?

Gelukkig is er een eenvoudige MySQL installer waarmee je MySQL kan installeren op je besturingssysteem. Geen ingewikkelde code of moeilijke instellingen, gewoon een eenvoudige Windows installatie-wizard.

MySQL Installer voor Windows.
MySQL Installer voor Windows.

Stap 1: Download de MySQL installer voor Windows. Je zou dan twee bestanden moeten zien: de web installer en de alternatieve installer. Kies de eerste als je een internetverbinding hebt tijdens het downloaden van MySQL. Heb je dat niet, kies dan de andere optie. Je kan ook het zip archief downloaden, uitpakken en dan MySQL handmatig installeren. Je kan het dan alleen niet instellen met de installer wizard.

Stap 2: Nadat MySQL is gedownload, dubbelklik je op de installer om deze te openen. Doorloop de verschillende vensters om de installatie af te ronden.

MySQL Installer
MySQL Installer

Stap 3: Je zal snel bij een setup type scherm aankomen. Als je MySQL als developer wil gebruiken, kies je voor Developer Default. De Server only optie is ideaal voor servers. Weet je het niet zeker, kies dan gewoon voor Full om alle onderdelen te downloaden. De setup kan je vragen om andere benodigde software te installeren, je kan dit automatisch laten regelen of zelf de vereiste tools online opzoeken.

MySQL Installer Setup Type.
MySQL Installer Setup Type.

Stap 4: Nadat je alle benodigde onderdelen hebt gedownload, kom je bij een setup scherm. Je kan de meeste instellingen gewoon op de standaardkeuzes laten staan (kies wel voor óf Server Computer óf Dedicated Computer als je een database server op de huidige computer wil instellen).

Je moet ook een root wachtwoord instellen en eventueel extra gebruikers toevoegen, als je dat wil.

Wil je dat MySQL meteen bij het opstarten uitgevoerd wordt, vink dan dat selectievakje even aan.

Stap 5: Nu de configuratie afgerond is, kan je de installatie voltooien. Wil je MySQL meteen uitproberen, laat het vakje naast Start MySQL Workbench after Setup  dan aangevinkt. Je kan ook MySQL Workbench altijd starten via het startmenu, door de naam in te typen in het zoekveld.

Je hebt nu MySQL geïnstalleerd, en kan beginnen met testen.

Installeren van MySQL Community Server op Linux

Anders dan bij Windows is er geen eenvoudige manier om een installer te gebruiken om MySQL op een Linux computer te installeren. Je moet daarom de opdrachtregel gebruiken om MySQL te installeren. Hierbij gebruik je de package managers die ingebouwd zitten in het besturingssysteem.

Gelukkig is dit in principe zelfs nog sneller dan een installer met 10 stappen zoals op Windows. Je hoeft alleen de Terminal te starten, en je kan meteen aan de slag.

Zo doe je dit op een apt-based besturingssysteem, zoals Ubuntu (voordat je begint moet je wellicht nog wel de MySQL APT Repository installeren):

Repository setup packages.
Repository setup packages.

Stap 1: Begin door de packages op je computer te updaten, zodat je de nieuwste versie van MySQL krijgt:

sudo apt update.
sudo apt update.

Stap 2: Voer nu deze code uit om MySQL te installeren:

sudo apt install mysql-server

Deze opdracht zal de meeste installatie-stappen uitvoeren en de server starten. Als de opdrachtregel je vraagt om een versie te kiezen, ga dan voor de nieuwste versie, momenteel 8.0 (of je moet een specifieke reden hebben om een bepaalde versie te kiezen).

Stap 3: Voer de beveiligingsinstallatie uit om kwetsbaarheden te repareren:

sudo mysql_secure_installation

Stap 4: MySQL zou nu automatisch moeten starten, maar je kan eventueel altijd deze opdracht gebruiken:

sudo service mysql restart

Voor yum-based systemen, zoals CentOS 7, zijn de stappen nagenoeg hetzelfde. Het voornaamste verschil is dat je MySQL Yum Repository nodig hebt. Daarnaast moet je de apt opdrachten vervangen met yum.

Installeren van MySQL Community Server op Mac

Sommige versies van Mac OS X hebben MySQL al vooraf geïnstalleerd. Je kan dit testen voor jouw computer door onderstaande opdracht in de Terminal uit te voeren:

mysql -V

Zie je output, dan is MySQL al geïnstalleerd, en hoef je dus niks meer te doen. We raden je wel aan om versie 5.7 of 8.0 te gebruiken. Is je huidige versie ouder, dan is het slim om een nieuwe versie van MySQL te installeren.

Aangezien Mac niet zo’n handige package manager heeft als Linux, zullen we Homebrew gebruiken, een populair programma waarmee je eenvoudig MySQL (en allerlei andere dingen) erg makkelijk kan installeren.

Homebrew op een Mac.
Homebrew op een Mac.

Stap 1: Na het installeren van Homebrew voer je onderstaande opdracht in bij de Terminal:

brew install mysql

Deze opdracht zou MySQL 8.0 moeten installeren en de dienst meteen moeten starten.

Stap 2: Voer het beveiligde installatieproces uit:

mysql_secure_installation

Stap 3: Als de MySQL server niet meteen is gestart, kan je dit nog handmatig doen:

brew services start mysql

Samenvatting

Het starten van een MySQL server klinkt heel ingewikkeld, maar is in de praktijk minder lastig dan je zou denken – mits je de juiste stappen volgt. Of je nou een Windows installer gebruikt of de Terminal, je zou nu de basis van een werkende SQL database op je computer moeten hebben.

Nu je een database hebt, moet je meteen een back-up maken, en je database beveiligen. Bekijk ons gids over het maken van een back-up van je MySQL database, zodat je nooit data kwijtraakt. Beide zijn erg belangrijk om je websites veilig te houden.