MariaDB en phpMyAdmin installeren op Debian 13 voor Laravel
geverifieerd op 2 september 2026 · 4 min
sudo apt install mariadb-server, daarna sudo mariadb-secure-installation (het oude mysql_secure_installation bestaat niet meer). Maak een database in utf8mb4 en een aparte gebruiker die alleen tot die database toegang heeft, nooit het beheerdersaccount. Aan de Laravel-kant geldt DB_CONNECTION=mysql ook voor MariaDB.
Laravel heeft een database nodig. Op Debian is MariaDB de vanzelfsprekende keuze: het is het pakket dat de distributie meelevert en het werkt met de MySQL-driver van Laravel. phpMyAdmin komt daarna, als je een webinterface wilt om je tabellen te bekijken.
Dit hoofdstuk maakt deel uit van de installatie van Laravel op Debian, binnen het traject Webdevelopment. De stappen zijn uitgevoerd op Debian 13 “trixie” met MariaDB 11.8.6 en Laravel 13.30.1, op 2 september 2026.
MariaDB installeren
sudo apt update
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb
mariadb --versionmariadb from 11.8.6-MariaDB, client 15.2 for debian-linux-gnuHet beheerdersaccount is bereikbaar vanuit de rootshell van de machine, zonder wachtwoord. Dat betekent niet dat de installatie veilig is: het betekent dat de beveiliging volledig op de toegang tot de server rust.
De installatie dichttimmeren
Debian 13 levert de tool onder zijn MariaDB-naam. Het oude mysql_secure_installation bestaat niet meer:
sudo mariadb-secure-installationHet script stelt een reeks vragen. Antwoord zo:
| Vraag | Antwoord | Waarom |
|---|---|---|
| Switch to unix_socket authentication | ja | de beheerder identificeert zich met zijn systeemaccount, niet met een opgeslagen wachtwoord |
| Change the root password | naar keuze | overbodig zodra unix_socket aan staat |
| Remove anonymous users | ja | daarmee kan iemand verbinden zonder gebruikersnaam |
| Disallow root login remotely | ja | beheer doe je via SSH, niet op poort 3306 |
| Remove test database | ja | een database waar iedereen in mag schrijven |
| Reload privilege tables | ja | past de wijzigingen meteen toe |
De database en de applicatiegebruiker aanmaken
Laat je applicatie nooit op het beheerdersaccount draaien. Maak een eigen database en een eigen account aan:
sudo mariadbCREATE DATABASE laravel
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'un_mot_de_passe_long';
GRANT ALL PRIVILEGES ON laravel.* TO 'laravel'@'localhost';
FLUSH PRIVILEGES;Twee punten verdienen aandacht. De tekenset utf8mb4 is geen versiering: het is de enige die de volledige Unicode opslaat, emoji inbegrepen. En de rechten blijven beperkt tot laravel.*, niet *.*: raakt de applicatie gecompromitteerd, dan blijven de andere databases buiten bereik.
Controleer het resultaat:
SHOW GRANTS FOR 'laravel'@'localhost';GRANT USAGE ON *.* TO `laravel`@`localhost` IDENTIFIED BY PASSWORD '*1F48A8…'
GRANT ALL PRIVILEGES ON `laravel`.* TO `laravel`@`localhost`Laravel aansluiten
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=un_mot_de_passe_longDB_CONNECTION=mysql geldt ook voor MariaDB: Laravel gebruikt dezelfde PDO-driver. Leeg de configuratiecache en draai daarna de migraties:
php artisan config:clear
php artisan migrate --force INFO Running migrations.
0001_01_01_000000_create_users_table ......................... 136.15ms DONE
0001_01_01_000001_create_cache_table .......................... 65.58ms DONE
0001_01_01_000002_create_jobs_table .......................... 117.52ms DONEMigraties die doorlopen zijn het bewijs dat de verbinding, de rechten en de tekenset kloppen.
De fout “could not find driver” komt niet van MariaDB maar van PHP: php-mysql ontbreekt. Controleer het met php -r 'echo implode(", ", PDO::getAvailableDrivers());', zoals uitgelegd in het hoofdstuk over PHP en zijn extensies, daar hoort mysql in de lijst te staan. Het pakket php-mysqli volstaat niet, want Laravel gaat via PDO.
phpMyAdmin, en of je het moet installeren
phpMyAdmin zit weer in Debian 13, in versie 5.2.2:
sudo apt install -y phpmyadminDe wizard biedt aan om de webserver te configureren, in de meeste gevallen Apache, en maakt zijn eigen configuratiedatabase aan. Op een Apache-installatie wordt de interface daarna geserveerd onder /phpmyadmin.
Het adres /phpmyadmin wordt onophoudelijk gescand. Zet je het op een publieke server, beperk de toegang dan op IP-adres of met HTTP-authenticatie, of stel het helemaal niet bloot: via een SSH-tunnel bereik je het vanaf je eigen machine zonder het voor de hele wereld open te zetten.
# SSH-tunnel: phpMyAdmin blijft op de loopback van de server
ssh -L 8080:127.0.0.1:80 deploy@exemple.com
# open daarna http://127.0.0.1:8080/phpmyadmin in je browserVoor dagelijks gebruik volstaat de commandoregel, en daarmee is de hele vraag van de baan:
sudo mariadb laravel -e "SHOW TABLES;"
php artisan db:show
php artisan db:table users
php artisan tinkerphp artisan db:show toont de tabellen, hun omvang en hun aantal rijen zonder dat je de terminal verlaat. Vaak is dat alles wat je nodig hebt.
Back-ups maken
Een database zonder back-up is geen productiedatabase. Het minimale commando:
sudo mariadb-dump --single-transaction laravel | gzip > /var/sauvegardes/laravel-$(date +%F).sql.gz--single-transaction voorkomt dat de InnoDB-tabellen tijdens de export op slot gaan, zodat je een back-up maakt zonder de dienst te onderbreken. Zet die regel in een geplande taak en controleer af en toe of een restore echt werkt: een back-up die je nooit hebt teruggezet is een aanname, geen garantie.
Veelgemaakte fouten
mariadb-secure-installation.laravel.*.php-mysql ontbreekt. php-mysqli volstaat niet, want Laravel gaat via PDO.