Een adresboek in een spreadsheet werkt prima, totdat je het wil koppelen aan andere scripts of automatiseringen. Een eenvoudige MySQL-database geeft je meer flexibiliteit — en het is een goede manier om vertrouwd te raken met databases en Bash-scripting.
In dit voorbeeld draait de database op een Synology NAS met MariaDB, maar het werkt op elke MySQL/MariaDB-instantie.
De volledige code staat op GitHub: github.com/siekman-io/contacten
Vereisten
- MySQL-client op je machine (macOS, Linux)
- Een draaiende MySQL of MariaDB server
- Een gebruiker met rechten om databases aan te maken
MySQL-client installeren op macOS
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update
brew install mysql-client
Verbinding testen
Controleer eerst of je verbinding kunt maken met de database:
mysql -u gebruikersnaam -p -h 10.0.0.1
Vervang 10.0.0.1 door het IP van je server (of localhost als de database lokaal draait).

Als je de mysql> prompt ziet, is de verbinding in orde. Verlaat de client met exit.
Projectstructuur opzetten
Maak een map aan voor de scripts en configuratie:
mkdir ~/contacten
cd ~/contacten
De map bevat vier bestanden:
contacten/
├── config # databasegegevens
├── contacten.sql # tabelschema
├── create_db.sh # database aanmaken
└── add-contact.sh # contact toevoegen
Configuratiebestand
Maak een bestand config aan met je databasegegevens:
#!/bin/bash
HOST=10.0.0.1
DB=adresboek
TABLE=adresboek
USER=gebruikersnaam
PASSWORD=wachtwoord
Database schema
Maak contacten.sql aan met de tabelstructuur:
CREATE TABLE adresboek (
ID INT AUTO_INCREMENT PRIMARY KEY,
Voornaam VARCHAR(50),
Tussenvoegsel VARCHAR(20),
Achternaam VARCHAR(50),
Straatnaam VARCHAR(100),
Huisnummer VARCHAR(10),
Postcode VARCHAR(10),
Woonplaats VARCHAR(50),
Land VARCHAR(50)
);
Database aanmaken
Maak create_db.sh aan:
#!/bin/bash
source config
mysql -u$USER -p$PASSWORD -h $HOST -e "CREATE DATABASE $DB"
mysql -u$USER -p$PASSWORD -h $HOST $DB < contacten.sql
echo "Database aangemaakt."
Geef uitvoerrechten en draai het script:
chmod +x create_db.sh
sh create_db.sh
Contact toevoegen
Maak add-contact.sh aan. Dit script vraagt interactief om de gegevens en schrijft ze naar de database:
#!/bin/bash
source config
read -p "Voornaam: " voornaam
read -p "Tussenvoegsel: " tussenvoegsel
read -p "Achternaam: " achternaam
read -p "Straatnaam: " straatnaam
read -p "Huisnummer: " huisnummer
read -p "Postcode: " postcode
read -p "Woonplaats: " woonplaats
read -p "Land: " land
mysql -u$USER -p$PASSWORD -h $HOST $DB -e "
INSERT INTO $TABLE
(Voornaam, Tussenvoegsel, Achternaam, Straatnaam, Huisnummer, Postcode, Woonplaats, Land)
VALUES
('$voornaam','$tussenvoegsel','$achternaam','$straatnaam','$huisnummer','$postcode','$woonplaats','$land')
"
echo "Contact opgeslagen."
chmod +x add-contact.sh
sh add-contact.sh

Resultaat
Na het toevoegen van een contact kun je de data controleren via phpMyAdmin of direct via de terminal:
mysql -u$USER -p$PASSWORD -h $HOST $DB -e "SELECT * FROM adresboek;"

Volgende stappen
Dit is een bewuste beginopzet. Uitbreidingsmogelijkheden:
list-contacts.sh— alle contacten tonen met filteringsearch-contact.sh— zoeken op naam of postcodedelete-contact.sh— verwijderen op ID- Wachtwoord uit
confighalen en via.my.cnfregelen zodat het niet in platte tekst staat
Werkt dit ook op een Synology NAS?
Ja, Synology DSM heeft een ingebouwde MariaDB-package. Installeer die via Package Center, zet remote verbindingen aan en gebruik het IP van je NAS als host.
Heb ik phpMyAdmin nodig?
Nee, phpMyAdmin is optioneel — handig om de data te controleren. De scripts werken puur via de command line.
Kan ik de scripts aanpassen voor andere velden?
Ja, pas het SQL-schema aan in contacten.sql en voeg de bijbehorende vragen toe in add-contact.sh.
Dit artikel lezen in het Engels?
Read in English →