Wat is MySql en hoe werkt deze database?
Auteur: Redactie Domeny.ForSale Gepubliceerd
Kort samengevat: MySQL is een beheersysteem voor relationele databases: software die gestructureerde informatie opslaat en waarmee je die informatie kunt opvragen en wijzigen. Websites, webwinkels en applicaties gebruiken het bijvoorbeeld om berichten, gebruikersaccounts en bestellingen op te slaan. MySQL is geen programmeertaal: voor het werken met gegevens gebruikt het vooral de taal SQL.
Hoe slaat MySQL gegevens op?
Een relationele database ordent informatie in tabellen. Elke tabel heeft kolommen die het soort gegevens bepalen en rijen die afzonderlijke records voorstellen, bijvoorbeeld klanten. Met identificatienummers kun je tabellen aan elkaar koppelen, zodat je dezelfde informatie niet meerdere keren hoeft op te slaan.
In een webwinkel kan de tabel klanten een identificatienummer, voornaam en e-mailadres bevatten. De tabel bestellingen bevat het bestelnummer, het bedrag en het identificatienummer van de klant. Dankzij die koppeling kun je alle bestellingen van één persoon vinden zonder diens gegevens naar elk record te kopiëren.
MySQL doet meer dan alleen gegevens opslaan. Het beheert ook toegangsrechten, ondersteunt het gelijktijdige gebruik door meerdere gebruikers en voert query’s uit: opdrachten die gegevens opvragen of wijzigen. Indexen — hulpstructuren die lijken op het register van een boek — kunnen zoekopdrachten versnellen zonder dat de hele tabel hoeft te worden doorzocht.
Wat is het verschil tussen MySQL, SQL en andere databases?
SQL is een taal voor opdrachten; MySQL is het programma dat ze uitvoert. Met SQL kun je onder meer tabellen maken, records toevoegen en informatie selecteren die aan bepaalde voorwaarden voldoet. Andere databasesystemen gebruiken deze taal ook, al kunnen de precieze syntaxis en beschikbare functies verschillen.
Een voorbeeld van een query op de klantentabel:
SELECT voornaam, email
FROM klanten
WHERE stad = 'Kraków';
Deze opdracht haalt de voornamen en e-mailadressen op van klanten bij wie in het veld stad Kraków staat. De gegevens worden niet gewijzigd. Bij een doorsnee website voert de applicatiecode zulke query’s uit, zodat de website-eigenaar ze niet handmatig hoeft in te voeren.
MySQL wordt soms verward met MariaDB. Het zijn afzonderlijke systemen met een gemeenschappelijke oorsprong, die voor veel toepassingen compatibel zijn, maar niet identiek. Controleer voordat je het ene systeem door het andere vervangt de eisen van de applicatie en de compatibiliteit van de betreffende versies. PostgreSQL is weer een ander systeem. SQLite werkt doorgaans als een bibliotheek die een lokaal bestand gebruikt, zonder aparte databaseserver.
Waarvoor gebruikt een website MySQL?
MySQL vormt vaak de achterliggende gegevensopslag van een CMS, een systeem voor het beheren van inhoud. Een voorbeeld is WordPress, dat MySQL of MariaDB kan gebruiken. Het slaat onder meer de inhoud van berichten, instellingen, reacties en gebruikersgegevens in de database op.
Een database is echter niet hetzelfde als hosting of een complete website. Hosting biedt de omgeving waarin de website draait; MySQL is een van de diensten die daar beschikbaar kunnen zijn. De applicatiecode, thema’s en geüploade foto’s staan meestal in bestanden, al kan de database informatie over hun locatie bevatten.
Wanneer iemand een blogbericht opent, haalt de applicatie de inhoud uit de database op en stelt de pagina samen voor de browser. Een cache kan het aantal van zulke leesacties beperken. De browser zelf maakt meestal geen rechtstreekse verbinding met MySQL: dat doet de applicatie die op de server draait.
Niet elke website heeft een database nodig. Een eenvoudige website met kant-en-klare HTML-bestanden kan zonder MySQL werken. Een database wordt nuttig wanneer gebruikers regelmatig informatie moeten kunnen bewerken, filteren of opslaan.
Is MySQL gratis en hoe begin je?
MySQL Community Edition is zonder licentiekosten beschikbaar onder de GPL-licentie. Er zijn ook commerciële MySQL-aanbiedingen. Dat deze editie geen licentiekosten heeft, betekent niet dat het gebruik ervan niets kost: je kunt nog steeds betalen voor een server, beheer, back-ups of een beheerde dienst.
Bij een gebruikelijke installatie van WordPress op gedeelde hosting hoef je MySQL doorgaans niet zelf te installeren. Een automatische installer kan de database en de verbinding instellen. Bij handmatige configuratie moet je meestal:
- Een database aanmaken in het hostingpaneel.
- Een databasegebruiker aanmaken en deze de benodigde rechten geven.
- In de installer van de applicatie de databasenaam, gebruikersnaam, het wachtwoord en het adres van de databaseserver invoeren.
- Controleren of de website werkt en hoe de back-ups worden gemaakt.
Voor het bekijken van tabellen en uitvoeren van query’s wordt vaak phpMyAdmin gebruikt. Dat is een beheerpaneel, niet de database zelf. Wijzigingen die je daarin uitvoert, kunnen rechtstreeks invloed hebben op de website. Maak voordat je gegevens handmatig bewerkt een back-up die je ook kunt terugzetten.
Waarop moet je letten bij hosting met MySQL?
Alleen de vermelding ‘MySQL-ondersteuning’ is niet genoeg om een aanbod te beoordelen. Zoek in de documentatie van de applicatie op welke versies vereist zijn en vraag de hostingprovider welk systeem en welke versie daadwerkelijk beschikbaar zijn. Vraag ook naar de limieten voor de omvang van databases en het aantal gelijktijdige verbindingen, en naar de mogelijkheid om gegevens te exporteren.
Ook het back-upbeleid is belangrijk: hoe vaak worden back-ups gemaakt, hoelang worden ze bewaard en hoe zet je ze terug? Een back-up van alleen de WordPress-bestanden bevat niet de inhoud die in de database is opgeslagen. Een back-up van alleen de database vervangt evenmin de foto’s en overige websitebestanden.
De beveiliging hangt ook af van de applicatie. Die moet geparametriseerde query’s gebruiken, die gebruikersgegevens scheiden van SQL-opdrachten en helpen voorkomen dat kwaadaardige opdrachten worden geïnjecteerd. De inloggegevens voor de database mogen niet in de openbaar toegankelijke websitecode of een openbare repository terechtkomen.
Als je een kant-en-klaar CMS installeert, controleer dan eerst de vereisten en of je bij de hostingprovider back-ups kunt terugzetten. SQL leren kan later; een werkende verbinding en de mogelijkheid om gegevens te herstellen zijn vanaf het begin nodig.
Zie ook: Wat is 2FA?
