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 10.4 op een VPS met CentOS 7 installeert.
MariaDB installeren en configureren
Stap 1
Verbind met je VPS via SSH of gebruik de VPS-console en update je VPS:
yum -y update
Stap 2
Maak vervolgens een repository voor MariaDB 10.4 (je bent vrij 10.4 door een andere versie te vervangen):
nano /etc/yum.repos.d/MariaDB.repo
Geef het bestand de volgende inhoud:
[mariadb]
name = MariaDB
baseurl=http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Sla tot slot de wijzigingen op en sluit het bestand met ctrl + x > y > enter.
Stap 3
Installeer nu MariaDB met het commando:
yum -y install MariaDB-server MariaDB-client
Stap 4
MariaDB staat na de installatie uit. Schakel het in met het commando:
systemctl start mariadb
systemctl enable mariadb
(Het enable commando is voor de zekerheid: niet iedere versie van MariaDB start automatisch na een herstart van je VPS)
Stap 5
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] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
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 Firewalld in CentOS 7). 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:
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="123.123.123.123"
port protocol="tcp" port="3306" accept'
Vervang 123.123.123.123 door het IP-adres dat je toegang wil geven en herlaad daarna je firewall met:
firewall-cmd --reload
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/my.cnf.d/server.cnf
Vervang de regel:
#
bind-address=0.0.0.0
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: 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.