ServBay: Bestaande MariaDB-database importeren in je lokale omgeving
ServBay is een krachtige lokale webontwikkelomgeving met een geïntegreerde MariaDB-database. Het migreren of importeren van je bestaande MariaDB-database (bijvoorbeeld vanaf een andere lokale omgeving, een externe server of een back-up) naar de ingebouwde MariaDB van ServBay is een veelvoorkomende taak. Deze gids leidt je stap voor stap door het hele proces, zodat de data soepel overgezet wordt naar je ServBay ontwikkelomgeving.
Overzicht
Deze handleiding behandelt het gebruik van standaard MariaDB/MySQL opdrachtregeltools (mysqldump
en mysql
) om data vanuit een bronsysteem te exporteren, vervolgens een doel-database aan te maken binnen ServBay, en tenslotte de data te importeren in de MariaDB-omgeving van ServBay.
Voorwaarden
Voordat je start met importeren, zorg ervoor dat aan de volgende voorwaarden is voldaan:
- ServBay is geïnstalleerd en draait op macOS: Zorg ervoor dat ServBay succesvol is geïnstalleerd en actief is.
- De MariaDB-package in ServBay is geactiveerd en in gebruik: Controleer in het “Pakketten”-overzicht van de ServBay-app of MariaDB is ingeschakeld en een groene status heeft. Zoniet, start deze dan handmatig.
- Je hebt toegang tot de bron-MariaDB-database: Je moet het host-adres, de poort (indien niet standaard), gebruikersnaam, wachtwoord en de naam van de bron-database weten.
- Je hebt toegang tot de doel-MariaDB in ServBay: Dit is doorgaans de
root
-gebruiker met het bijbehorende wachtwoord van MariaDB in ServBay. Standaard heeftroot
vaak geen wachtwoord tenzij je er zelf een hebt ingesteld tijdens de installatie of configuratie. De huidige inloggegevens kun je in ServBay onder Databasebeheer terugvinden of daar desgewenst resetten. - Voldoende schijfruimte beschikbaar: Zorg dat er genoeg vrije ruimte is in de ServBay-omgeving voor het importeren van de data.
Stappenplan
Stap 1: Exporteer de data uit je bron-MariaDB
Exporteren kan met het hulpprogramma mysqldump
, waarmee je de data wegschrijft naar een SQL-bestand.
Open de Terminal-app: Start de Terminal op je Mac.
Voer het exportcommando uit: Gebruik
mysqldump
om verbinding te maken met je bron-MariaDB en het database-exportbestand aan te maken. Stel, je bron-database heetmydatabase_source
en je wilt exporteren naarmydatabase.sql
.bashmysqldump -u your_source_username -p -h your_source_host -P your_source_port mydatabase_source > mydatabase.sql
1your_source_username
: Vervang door je gebruikersnaam van de bron-database.-p
: Je krijgt na het uitvoeren een prompt om je wachtwoord in te voeren.-h your_source_host
: Voor een externe server, geef je het host-adres op. Laat weg voor een lokale database met standaardinstellingen.-P your_source_port
: Geef een andere poort op als die afwijkt van 3306. Meestal kun je deze weglaten.mydatabase_source
: De naam van de bron-database die je wilt exporteren.> mydatabase.sql
: Hiermee sla je het resultaat op in het bestandmydatabase.sql
in je huidige map.
Voor het gemak kun je het SQL-bestand het beste opslaan in een tijdelijke map binnen de ServBay webroot, bijvoorbeeld
/Applications/ServBay/www/temp/mydatabase.sql
. Je kunt eerst in de terminal exporteren en daarna het bestand verplaatsen:bashmysqldump -u your_source_username -p mydatabase_source > mydatabase.sql mv mydatabase.sql /Applications/ServBay/www/temp/
1
2Let op: Controleer of de map
/Applications/ServBay/www/temp/
bestaat.
Stap 2: Doel-database aanmaken in MariaDB van ServBay
Voordat je importeert, moet je in de ingebouwde MariaDB binnen ServBay een nieuwe, lege database aanmaken.
Log in op de MariaDB van ServBay: Open je terminal en maak verbinding met MariaDB. Meestal kan dat via een Unix socket of via localhost.
bashmysql -u root -p
1Je wordt gevraagd het wachtwoord van de
root
-gebruiker in te voeren. Druk op Enter na het invoeren.Tip: Kun je niet inloggen of ben je het wachtwoord vergeten, bekijk dan de MariaDB-instellingen in de ServBay UI of check de logboeken.
Maak de doel-database aan: In het MariaDB-CLI-venster maak je een nieuwe database aan, bijvoorbeeld met dezelfde naam als de bron (bijv.
mydatabase
). Dit is geen noodzaak, maar wel handig.sqlCREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
1mydatabase
: Vervang door de gewenste database-naam.CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
: Het is sterk aangeraden expliciet het tekenset en collatie in te stellen om problemen met vreemde tekens te voorkomen. Kies waar mogelijk dezelfde instellingen als op je bron-database.
Verlaat de MariaDB-CLI: Typ
exit;
gevolgd door Enter om af te melden.sqlexit;
1
Stap 3: Importeer de data in MariaDB van ServBay
Nu importeer je het geëxporteerde SQL-bestand in de aangemaakte doeldatabase.
Open Terminal: Zorg dat je in de terminal werkt.
Voer het importcommando uit: Gebruik
mysql
om het SQL-bestand naar de gekozen database te importeren.bashmysql -u root -p mydatabase < /Applications/ServBay/www/temp/mydatabase.sql
1-u root -p
: Logt in als de root-gebruiker, waarbij je het wachtwoord invoert.mydatabase
: Naam van de database die je in de vorige stap hebt aangemaakt.< /Applications/ServBay/www/temp/mydatabase.sql
: Wijst de locatie aan van je SQL-bestand. Zorg dat dit pad klopt met waar je bestand staat.
Afhankelijk van de grootte van het bestand kan de import enige tijd duren. In de terminal zie je meestal geen output tot de import gereed is of als er fouten optreden.
Stap 4: Controleer of de data correct is geïmporteerd
Na importeren is het sterk aangeraden te controleren of alles goed gegaan is.
Log opnieuw in op MariaDB van ServBay:
bashmysql -u root -p
1Selecteer de geïmporteerde database:
sqlUSE mydatabase;
1mydatabase
: Vervang door de naam van je database.
Voer queries uit ter controle: Controleer de structuur en de data.
sqlSHOW TABLES; -- Toon alle tabellen SELECT COUNT(*) FROM your_table_name; -- Aantal rijen in een bepaalde tabel SELECT * FROM your_table_name LIMIT 10; -- Bekijk de eerste 10 rijen van een tabel
1
2
3your_table_name
: Vervang met de naam van je eigen tabel.
Vergelijk de resultaten met je bron-database of steekproef belangrijke data om te zien of alles klopt.
Veelvoorkomende compatibiliteitsproblemen en oplossingen
Hoewel MariaDB over het algemeen prima compatibel is tussen versies, kun je bij migraties toch tegen enkele problemen aanlopen. Hieronder vind je enkele bekende issues met bijbehorende oplossingen.
1. SQL-syntaxis is versie-specifiek
Exportbestanden uit oudere MariaDB-versies kunnen soms niet direct worden geïmporteerd in nieuwere versies vanwege versie-specifieke verschillen in SQL-syntaxis.
- Oplossing: Open het geëxporteerde
mydatabase.sql
-bestand en zoek naar problematische SQL-regels. Pas deze aan op basis van de foutmelding en raadpleeg eventueel de officiële MariaDB Documentatie voor de juiste syntaxis.
2. Incompatibele/opgeheven storage-engines
Oudere storage-engines zoals MyISAM worden soms niet langer aanbevolen of ondersteund.
Oplossing: Wijzig vóór import alle
ENGINE=MyISAM
of andere oudere engines in het SQL-bestand naar een door ServBay ondersteunde en aanbevolen engine, bijvoorbeeldENGINE=InnoDB
. InnoDB is robuust en ondersteunt transacties.sql-- Zoek regels zoals: CREATE TABLE `your_table_name` ( -- ... kolomdefinities ... ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- En vervang door: CREATE TABLE `your_table_name` ( -- ... kolomdefinities ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1
2
3
4
5
6
7
8
9
3. Gebruikers en rechten gaan verloren
Met mysqldump
worden standaard geen gebruikers en privileges geëxporteerd. Gebruikers uit je brondatabase bestaan daarom niet automatisch in MariaDB van ServBay.
Oplossing: Maak de benodigde gebruikers na de import opnieuw aan en ken ze de juiste rechten toe. Log hiervoor in als
root
en voerCREATE USER
enGRANT
opdrachten uit.sql-- Maak een nieuwe gebruiker aan (bijv. 'servbay_user' op localhost met wachtwoord 'your_password') CREATE USER 'servbay_user'@'localhost' IDENTIFIED BY 'your_password'; -- Geef alle rechten op de database: GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'localhost'; -- Of voor toegang van elke host (niet aanbevolen voor productie): -- CREATE USER 'servbay_user'@'%' IDENTIFIED BY 'your_password'; -- GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'%'; -- Vernieuw privileges FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
11
12- Vervang
servbay_user
enyour_password
door je eigen keuze. mydatabase
: Gebruik de juiste database-naam.- Kies tussen
@'localhost'
of@'%'
afhankelijk van je wensen.
- Vervang
4. Verschillende character set/collatie
Zitten bron- en doeldatabase niet op dezelfde character set of collatie, dan kun je bij import vreemde tekens (mojibake) krijgen – zeker als de database veel non-ASCII karakters bevat.
- Oplossing: Kies bij het aanmaken van de doeldatabase exact dezelfde character set en collatie als in de bron. Zie Stap 2 hiervoor. Heb je al geïmporteerd, maak dan de database opnieuw aan met de juiste instellingen en check de codering van je SQL-bestand (bijv. UTF-8, zonder BOM). Eventueel voeg je bovenaan je SQL-bestand
SET NAMES 'utf8mb4';
toe, opnieuw importeren daarna.
ServBay-specifieke aandachtspunten
- MariaDB-credentials: Zoals vermeld, vind of reset je het MariaDB
root
-wachtwoord via de ServBay UI. - Logbestanden: Fouten tijdens import vind je in de ServBay MariaDB error logs, meestal te vinden in de
logs
-map van je ServBay-installatie. - Performance: Grote databases importeren kan veel systeembronnen vragen en langer duren. Houd hier rekening mee.
Veelgestelde vragen (FAQ)
Vraag: Wat als de import halverwege stopt of mislukt?
Antwoord: In dat geval is de database vaak niet correct of volledig geïmporteerd. Verwijder de doel-database (DROP DATABASE mydatabase;
), maak hem opnieuw aan (CREATE DATABASE mydatabase;
) en probeer de import opnieuw.
Vraag: Mijn SQL-bestand is erg groot — zijn er alternatieven voor importeren?
Antwoord: Voor grote bestanden kan importeren via <
inefficiënt zijn; gebruik in dat geval liever het source
-commando in de MariaDB CLI:
- Log in op MariaDB:
mysql -u root -p
- Selecteer de database:
USE mydatabase;
- Voer uit:
SOURCE /path/to/your/large_database.sql;
Dit werkt vaak betrouwbaarder met grote data.
Vraag: Kan ik via de ServBay UI importeren?
Antwoord: De ServBay UI faciliteert hoofdzakelijk pakketbeheer, website-instellingen en logweergave. Data importeren/exporteren doe je doorgaans met standaard tools zoals mysql
/mysqldump
of grafische tools als phpMyAdmin/Adminer. ServBay levert standaard Adminer mee; via de ServBay UI krijg je toegang tot Adminer, wat handig is voor kleine databases en gebruikers die nauwelijks ervaring met de terminal hebben.
Samenvatting
Het importeren van een bestaande MariaDB-database in ServBay is een normale migratieklus. Door gebruik te maken van mysqldump
voor export en mysql
voor import, heb je het snel geregeld. Let daarbij goed op de voorwaarden, compatibiliteitsvraagstukken (zoals tekensets, engines en rechtenstructuur) en controleer altijd of de import succesvol is geweest. Dankzij ServBay beschik je over een stabiele, lokale MariaDB-omgeving die perfect past in een moderne webontwikkelworkflow.