MariaDB is een open source databaseserver dat is afgeleid van MySQL. Samen met Apache en PHP vormt MariaDB de zogeheten LAMP-Stack (maar dan met MariaDB in plaats van MySQL) die gebruikt wordt voor het hosten van dynamische websites (e.g. WordPress).
MariaDB is de meest gebruikte database-software in Linux en komt bijna geheel overeen met MySQL. In dit artikel laten wij zien hoe je MariaDB op een VPS met Ubuntu of Debian installeert. Daarnaast leggen wij enkele commando's uit voor het gebruik van MariaDB via command-line.
MariaDB installeren en configureren
Stap 1
Verbind met je VPS via SSH of gebruik de VPS-console en update je VPS:
apt -y update
apt -y upgrade
Herstart nu eerst je VPS en herhaal na de herstart bovenstaande commando's (tenzij je VPS al up-to-date was). Sommige package updates zijn pas beschikbaar na het updaten en herstarten van je VPS.
Stap 2
Via het volgende commando haal je het MariaDB Package Repository setup script binnen en voer je die direct uit. Hiermee configureer je je VPS om packages te kunnen installeren van de MariaDB Package Repository voor MariaDB 11.4 (je bent vrij 11.4 door een andere versie te vervangen):
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash -s -- --mariadb-server-version=11.4
Je kunt er ook voor kiezen om geen software en versie te specificeren door het onderstaande commando te gebruiken. Hiermee voeg je naast de algemene MariaDB repository ook een repository toe voor MariaDB MaxScale en MariaDB Tools (deze laatste bevat Percona XtraBackup en bijbehorende dependencies):
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
Stap 3
Update je VPS om de nieuwe repository te kunnen gebruiken en installeer daarna MariaDB met de commando's:
apt -y update
apt -y install mariadb-server mariadb-client
Tijdens de installatie zal je om een wachtwoord gevraagd worden. Gebruik hiervoor om veiligheidsredenen een wachtwoord dat je niet voor andere zaken op je VPS gebruikt, zoals het wachtwoord van je root-user. Je hoeft in stap 4 dan niet nogmaals je wachtwoord aan te passen.
Stap 4
Voor je gebruik maakt van MariaDB, moet je een aantal beveiligingsopties configureren. Hiervoor gebruik je het commando:
mysql_secure_installation
Het is belangrijk voor de veiligheid van je VPS de aangegeven zorgvuldig door te lopen. Wij raden aan de volgende keuzes te maken in dit proces (highlighted in bold en italic):
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Firewall en externe verbindingen
SQL-poort 3306 staat niet automatisch open in je Firewall (standaard is dit UFW in Ubuntu 18.04). Voor de meeste gevallen is dit ook zeker niet nodig: Stel dat je bijvoorbeeld een WordPress-website host op je VPS, dan zal je Apache (of Nginx) server lokaal via de localhost met MariaDB verbinden en is het niet nodig de SQL-poort voor de buitenwereld open te zetten.
Heb je toch een use case waarbij je de SQL-poort beschikbaar moet maken voor een andere server, zet dan afhankelijk van je use case de SQL-poort enkel open voor je private network, of sta enkel specifiek per IP toegang tot de SQL-poort toe in Firewalld met de syntax:
ufw allow from 123.123.123.123 to any port 3306 proto tcp
Vervang 123.123.123.123 door het IP-adres dat je toegang wil geven.
Daarnaast 'bind' MariaDB standaard aan de localhost (127.0.0.1) en is daardoor niet extern bereikbaar. Om MariaDB extern bereikbaar te maken moet je het bind-adress aanpassen. Open hiervoor de configuratie van MariaDB:
nano
/etc/mysql/my.cnf
Vervang de regel:
bind-address=127.0.0.1
Door de regel:
bind-address=123.123.123.123
Waarbij je 123.123.123.123 vervangt door het IP-adres van je VPS waarop je wil dat MariaDB bind. Herstart daarna MariaDB met het commando:
systemctl restart mariadb
MariaDB beheren
Voor het beheren van MariaDB zijn er twee gangbare opties: beheren via command-line of phpMyAdmin.
phpMyAdmin: Voor het installeren en gebruiken van phpMyAdmin, zie deze handleiding.
Command-line: In dit artikel leggen wij uit hoe je MariaDB beheert met behulp van een SQL-shell via command-line.
Voor databasebeheer via PHP raden wij aan de dcumentatie van w3schools.com te raadplegen.
Je MariaDB-server is nu klaar voor gebruik! Wil je weten hoe je een MariaDB-server redundant kunt inrichten? Neem dan een kijkje in onze redundancy series.
Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.