Hoe importeer je een bestaande MySQL-database naar MariaDB in ServBay
ServBay is een krachtige lokale webontwikkelomgeving die standaard wordt geleverd met MariaDB als databasesysteem. MariaDB is grotendeels compatibel met MySQL, waardoor het migreren van data van een bestaande MySQL-omgeving naar de ingebouwde MariaDB van ServBay relatief eenvoudig is. In dit artikel vind je een stapsgewijze uitleg voor het exporteren van jouw MySQL-database en deze succesvol importeren in MariaDB binnen ServBay.
Overzicht
Deze handleiding is bedoeld voor ontwikkelaars die hun bestaande MySQL-database van een project of dataset willen migreren naar MariaDB binnen ServBay. Zo kun je jouw data lokaal blijven gebruiken voor ontwikkeling en testen, en tegelijk profiteren van het gemak en de efficiëntie die ServBay biedt.
Toepassingsscenario's
- Migreren van een MySQL-database van een server of andere lokale machine naar je ServBay-omgeving voor lokale ontwikkeling.
- Bestaande MySQL-data samenvoegen of back-uppen naar een MariaDB-instantie binnen ServBay.
- Applicaties testen binnen ServBay op compatibiliteit met bestaande MySQL-data.
Vereisten
Voordat je met de import begint, zorg ervoor dat je aan deze voorwaarden voldoet:
- MySQL geïnstalleerd en actief: Je hebt toegang tot een bestaande MySQL-database met de data die je wilt exporteren. Zorg dat je de connectiegegevens hebt (host, poort, gebruikersnaam, wachtwoord).
- ServBay geïnstalleerd en actief: ServBay komt standaard met MariaDB. Controleer dat ServBay draait en dat de MariaDB-service actief is. In het “Pakketten”-overzicht op het hoofdscherm van ServBay vind je de status van MariaDB.
- ServBay MariaDB connectie-informatie: Je hebt de connectiegegevens van MariaDB binnen ServBay nodig. Standaard draait MariaDB op
127.0.0.1
(oflocalhost
) op poort3306
metroot
als gebruiker. In het “Database”-tabblad van ServBay vind je het wachtwoord van deroot
-gebruiker en overige verbindingsdetails. Noteer het wachtwoord of wijzig het bij eerste gebruik. - Databasegebruikersrechten: Zorg dat je rechten hebt om data te exporteren uit de bron-MySQL en om te importeren/een database aan te maken binnen MariaDB van ServBay (meestal heeft de
root
-gebruiker in ServBay deze rechten). - Terminal toegang: Voor export- en importcommando’s heb je toegang tot een terminal nodig. De voorbeeldcommando’s hieronder gaan uit van macOS of Linux.
Stap 1: Exporteer data uit je bron-MySQL-database
Gebruik de tool mysqldump
om een SQL-export te maken van de gewenste MySQL-database.
- Open de terminal: Start je terminal applicatie op macOS.
- Maak verbinding met de bron-MySQL-database:
Voer onderstaand commando uit om te verbinden met je bron-MySQL. Je wordt gevraagd om je wachtwoord.bashmysql -u your_mysql_username -p -h your_mysql_host -P your_mysql_port
1- Vervang
your_mysql_username
door je MySQL-gebruikersnaam. - Vervang
your_mysql_host
door het adres van je MySQL-server (zoalslocalhost
of een IP-adres). - Vervang
your_mysql_port
door de poort (meestal 3306). - Werk je lokaal en met de standaardpoort, dan voldoet
mysql -u your_mysql_username -p
.
- Vervang
- Exporteer de database:
Gebruikmysqldump
om een specifieke database te exporteren. Stel dat je databasemydatabase
heet:bashmysqldump -u your_mysql_username -p mydatabase > mydatabase.sql
1- Vervang
your_mysql_username
door je MySQL-gebruikersnaam. - Vervang
mydatabase
door de naam van de te exporteren database. - Dit commando exporteert structuur en data naar het bestand
mydatabase.sql
in je huidige map. Een volledig pad, zoals/pad/naar/directory/mydatabase.sql
, kan ook. - Voor het exporteren van alle databases gebruik je de optie
--all-databases
(let op, alleen als het echt nodig is). - Om enkel specifieke tabellen te exporteren, noem je ze na de databasenaam.
- Vervang
Stap 2: Bereid MariaDB in ServBay voor
Voordat je de data importeert, maak je (indien nodig) een nieuwe, lege database aan in MariaDB binnen ServBay.
- Open de terminal: Start de terminal als deze nog niet open is.
- Maak verbinding met MariaDB in ServBay:
Maak verbinding met MariaDB via de juiste gegevens. Standaard kun je inloggen alsroot
met het wachtwoord uit ServBay.bashmysql -u root -p -h 127.0.0.1 -P 3306
1- Vul het wachtwoord van de
root
-gebruiker in. Je vindt dit in het “Database”-tabblad van ServBay. - Heb je de poort of host aangepast, pas dan
-h
en-P
aan.
- Vul het wachtwoord van de
- Nieuwe database aanmaken:
Voer het volgende SQL-commando uit om een nieuwe database aan te maken. Kies bij voorkeur dezelfde naam als de bron-database:sqlCREATE DATABASE mydatabase;
1- Vervang
mydatabase
door de gewenste databasenaam.
- Vervang
Stap 3: Importeer de data in MariaDB van ServBay
Nu kun je het geëxporteerde SQL-bestand importeren in de nieuw aangemaakte MariaDB-database.
- Open de terminal: Zorg dat je toegang hebt tot het bestand
mydatabase.sql
in je huidige directory, of gebruik het volledige pad. - Importeer het SQL-bestand:
Gebruik hetmysql
-commando om je SQL-bestand te importeren:bashmysql -u root -p -h 127.0.0.1 -P 3306 mydatabase < mydatabase.sql
1- Vul het wachtwoord van de
root
-gebruiker in. - Vervang
mydatabase
door de naam van de aangemaakte database. - Vervang
mydatabase.sql
eventueel door het juiste (volledige) pad van je exportbestand.
- Vul het wachtwoord van de
Afhankelijk van de grootte en complexiteit van je database kan dit een tijdje duren. De terminal geeft wellicht weinig feedback tot het proces voltooid is.
Stap 4: Controleer de import
Na importeren is het aan te raden te controleren of alle data correct in MariaDB van ServBay staat.
- Maak verbinding met MariaDB van ServBay:bash
mysql -u root -p -h 127.0.0.1 -P 3306
1- Voer het
root
-wachtwoord in.
- Voer het
- Selecteer de database:sql
USE mydatabase;
1- Vervang
mydatabase
door de naam van de geïmporteerde database.
- Vervang
- Voer controles uit:
Gebruik wat eenvoudige queries om te kijken of de tabellen en data kloppen, bijvoorbeeld:sqlSHOW TABLES; -- Bekijk alle tabellen SELECT COUNT(*) FROM your_table_name; -- Bekijk het aantal rijen in een tabel SELECT * FROM your_table_name LIMIT 10; -- Bekijk de eerste 10 rijen van een tabel
1
2
3- Vervang
your_table_name
door de daadwerkelijke naam van je tabel.
- Vervang
Zien de resultaten er goed uit? Dan is de import geslaagd!
Mogelijke compatibiliteitsproblemen oplossen
Hoewel MariaDB grotendeels compatibel is met MySQL, kunnen er bij specifieke situaties problemen optreden. Hier vind je enkele veelvoorkomende problemen en oplossingen:
1. Niet-ondersteunde SQL-syntax
Het kan voorkomen dat bepaalde MySQL-specifieke SQL-syntax of functies niet (volledig) werken in MariaDB.
- Oplossing: Krijg je syntaxfouten bij het importeren? Open dan het geëxporteerde
mydatabase.sql
-bestand en pas de foutieve commando’s aan volgens de MariaDB-documentatie. Vaak is voorzichtig zoeken en vervangen voldoende.
2. Opslag-Engines niet ondersteund
MySQL en MariaDB ondersteunen meerdere opslag-engines, zoals InnoDB, MyISAM, Aria en XtraDB. Sommige engine-types zijn eigen aan MySQL of MariaDB en mogelijk niet in beide beschikbaar (zoals Archive, Blackhole). De meest gebruikte engine, InnoDB, is gewoonlijk in beide systemen goed ondersteund.
- Oplossing: Levert een niet-ondersteunde engine errors op? Pas dan het
.sql
-bestand aan en wijzig de engine naar bijvoorbeeldENGINE=InnoDB
. Na import kun je, indien nodig, tabellen aanpassen met:sqlVervangALTER TABLE table_name ENGINE = InnoDB;
1table_name
door de tabellen die je wilt wijzigen.
3. Gebruikers en rechten
SQL-dumps via mysqldump
bevatten meestal geen gebruikers of rechten. En zelfs als dit wel het geval is, kan de manier waarop MySQL en MariaDB gebruikers en rechten beheren verschillen. De standaard root
-gebruiker in ServBay is bedoeld voor beheer; maak voor gewone applicaties waar nodig extra gebruikers aan.
- Oplossing: Maak gebruikers en rechten na het importeren opnieuw aan in MariaDB van ServBay, met behulp van de standaard-commando’s:sql
-- Nieuwe gebruiker aanmaken ('your_username', 'localhost', 'your_password' aanpassen) CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password'; -- Volledige rechten op de database toekennen GRANT ALL PRIVILEGES ON mydatabase.* TO 'your_username'@'localhost'; -- Rechten herladen FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8- Pas
your_username
,localhost
(of%
),your_password
enmydatabase
aan naar jouw situatie. - Wachtwoord vergeten van de
root
-gebruiker? ServBay biedt opties om de MariaDB (en PostgreSQL)root
-wachtwoorden te resetten — zie documentatie voor details.
- Pas
Samenvatting
Het importeren van een bestaande MySQL-database naar de ingebouwde MariaDB in ServBay is een essentiële stap om je ontwikkelwerkstroom naar ServBay te verplaatsen. Dit proces bestaat hoofdzakelijk uit het exporteren van de brondata met mysqldump
, het aanmaken van de doeldatabase in MariaDB, het importeren van het SQL-bestand met het mysql
-commando en een validerende controle achteraf. Volg je bovenstaande stappen en houd je rekening met de genoemde compatibiliteitspunten, dan migreer je je databases snel en efficiënt, klaar voor verdere webontwikkeling in ServBay.