A database server is an critical component of the network infrastructure necessary for today’s applications. Without the ability to store, retrieve, update, and delete data (when needed), the usefulness and scope of web and desktop apps becomes very limited.

Bovendien is het kennen van het installeren, beheren en configureren van een databaseserver (zodat deze werkt zoals verwacht) een essentiële vaardigheid die elke systeembeheerder moet hebben.
In dit artikel zullen we kort bespreken hoe je een MariaDB-databaseserver installeert en beveiligt en vervolgens zullen we uitleggen hoe je deze configureert.
Installeren en beveiligen van een MariaDB-server
In CentOS 7.x verving MariaDB MySQL, dat nog steeds te vinden is in Ubuntu (samen met MariaDB). Hetzelfde geldt voor openSUSE.
Voor de duidelijkheid zullen we in deze tutorial alleen MariaDB gebruiken, maar let op dat ondanks dat ze verschillende namen en ontwikkelingsfilosofieën hebben, beide Relationele Database Management Systemen (RDBMSs voor kort) bijna identiek zijn.
Dit betekent dat de client-side commando’s hetzelfde zijn op zowel MySQL als MariaDB, en de configuratiebestanden zijn genoemd en bevinden zich op dezelfde plaatsen.
Om MariaDB te installeren, voer het volgende uit:
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # yum update && yum install mariadb mariadb-server # CentOS --------------- On Debian and Ubuntu --------------- $ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server --------------- On openSUSE --------------- # zypper update && zypper install mariadb mariadb-tools # openSUSE
Merk op dat je in Ubuntu wordt gevraagd om een wachtwoord in te voeren voor de RDBMS-rootgebruiker.
Zodra de bovenstaande pakketten zijn geïnstalleerd, zorg ervoor dat de databaseservice draait en is geactiveerd om bij het opstarten te starten (in CentOS en openSUSE moet je deze handeling handmatig uitvoeren, terwijl in Ubuntu het installatieproces hier al voor heeft gezorgd):
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # systemctl start mariadb && systemctl enable mariadb --------------- On openSUSE --------------- # systemctl start mysql && systemctl enable mysql
Voer vervolgens het mysql_secure_installation
script uit. Dit proces stelt je in staat om:
- Stel / reset het wachtwoord in voor de RDBMS rootgebruiker
- Verwijder anonieme logins (waardoor alleen gebruikers met een geldig account kunnen inloggen op de RDBMS)
- Schakel roottoegang uit voor machines anders dan localhost
- Verwijder de testdatabase (die door iedereen kan worden geopend)
- Activeer de wijzigingen die verband houden met 1 tot en met 4.
Voor een meer gedetailleerde beschrijving van dit proces, kunt u verwijzen naar de Post-installatie sectie in Installeer MariaDB Database in RHEL/CentOS/Fedora en Debian/Ubuntu.
Configuratie van MariaDB Server
De standaard configuratieopties worden gelezen uit de volgende bestanden in de gegeven volgorde: /etc/mysql/my.cnf
, /etc/my.cnf
en ~/.my.cnf
.
Meestal bestaat alleen /etc/my.cnf
. Het is in dit bestand dat we de serverbrede instellingen zullen instellen (die kunnen worden overschreven met dezelfde instellingen in ~/.my.cnf
voor elke gebruiker).
Het eerste dat we moeten opmerken over my.cnf
is dat instellingen zijn georganiseerd in categorieën (of groepen) waarbij elke categorie naam is ingesloten met vierkante haken.
Server systeemconfiguraties worden gegeven in de [mysqld]
sectie, waar u meestal alleen de eerste twee instellingen in de onderstaande tabel zult vinden. De rest zijn andere veelgebruikte opties (waar aangegeven, zullen we de standaardwaarde wijzigen met een aangepaste waarde van onze keuze):
Setting and description | Default value |
datadir is the directory where the data files are stored. | datadir=/var/lib/mysql |
socket indicates the name and location of the socket file that is used for local client connections. Keep in mind that a socket file is a resource that is utilized to pass information between applications. | socket=/var/lib/mysql/mysql.sock |
bind_address is the address where the database server will listen on for TCP/IP connections. If you need your server to listen on more than one IP address, leave out this setting (0.0.0.0 which means it will listen on all IP addresses assigned to this specific host).
We zullen dit wijzigen om de service te instrueren alleen te luisteren op zijn hoofdadres (192.168.0.13): bind_address=192.168.0.13 |
bind_address=0.0.0.0 |
port represents the port where the database server will be listening.
We zullen de standaardwaarde (3306) vervangen door 20500 (maar we moeten ervoor zorgen dat er niets anders die poort gebruikt): Hoewel sommige mensen zullen beweren dat beveiliging door obscuriteit geen goede praktijk is, is het veranderen van de standaardtoepassingspoorten naar hogere poorten een rudimentaire – maar effectieve – methode om poortscans te ontmoedigen. |
port=3306 |
innodb_buffer_pool_size is the buffer pool (in bytes) of memory that is allocated for data and indexes that are accessed frequently when using Innodb (which is the default in MariaDB) or XtraDB as storage engine.
We zullen de standaardwaarde vervangen door 256 MB: innodb_buffer_pool_size=256M |
innodb_buffer_pool_size=134217728 |
skip_name_resolve indicates whether hostnames will be resolved or not on incoming connections. If set to 1, as we will do in this guide, only IP addresses.
Tenzij u hostnamen nodig heeft om machtigingen te bepalen, is het raadzaam deze variabele uit te schakelen (om verbindingen en query’s te versnellen) door de waarde in te stellen op 1: skip_name_resolve=1 |
skip_name_resolve=0 |
query_cache_size represents the size (in bytes) available to the query cache in disk, where the results of SELECT queries are stored for future use when an identical query (to the same database and using the same protocol and same character set) is performed.
U moet een query-cachegrootte kiezen die overeenkomt met uw behoeften op basis van 1) het aantal herhaalde query’s, en 2) het geschatte aantal records dat die herhaalde query’s naar verwachting zullen retourneren. We zullen deze waarde voorlopig instellen op 100 MB: query_cache_size=100M |
query_cache_size=0 (which means it is disabled by default) |
max_connections is the maximum number of simultaneous client connections to the server. We will set this value to 30: max_connections=30Each connection will use a thread, and thus will consume memory. Take this fact into account while setting max_connections. |
max_connections=151 |
thread_cache_size indicates the numbers of threads that the server allocates for reuse after a client disconnects and frees thread(s) previously in use. In this situation, it is cheaper (performance-wise) to reuse a thread than instantiating a new one.
Nogmaals, dit hangt af van het aantal verbindingen dat u verwacht. We kunnen deze waarde veilig instellen op de helft van het aantal max_connections: thread_cache_size=15 |
thread_cache_size=0 (disabled by default) |
In CentOS, moeten we SELinux vertellen om MariaDB toe te staan om te luisteren op een niet-standaard poort (20500) voordat we de service opnieuw starten:
# yum install policycoreutils-python # semanage port -a -t mysqld_port_t -p tcp 20500
Vervolgens de MariaDB-service herstarten.
Het afstemmen van de prestaties van MariaDB;
Om ons te helpen bij het controleren en afstemmen van de configuratie op onze specifieke behoeften, kunnen we mysqltuner installeren (een script dat suggesties zal geven om de prestaties van onze databaseserver te verbeteren en de stabiliteit ervan te verhogen):
# wget https://github.com/major/MySQLTuner-perl/tarball/master # tar xzf master
Verander vervolgens naar de map die is uitgepakt uit het tarball (de exacte versie kan in uw geval verschillen):
# cd major-MySQLTuner-perl-7dabf27
en voer het uit (u wordt gevraagd om de referenties van uw beheerdersaccount voor MariaDB in te voeren)
# ./mysqltuner.pl
De uitvoer van het script is op zichzelf al zeer interessant, maar laten we naar onderen scrollen waar de aan te passen variabelen worden vermeld met de aanbevolen waarde:

De instelling query_cache_type
geeft aan of de querycache is uitgeschakeld (0) of ingeschakeld (1). In dit geval adviseert mysqltuner ons om het uit te schakelen.
Dus waarom wordt ons nu geadviseerd om het uit te schakelen? De reden is dat de querycache vooral nuttig is in scenario’s met veel lezen en weinig schrijven (wat niet ons geval is, aangezien we net de databaseserver hebben geïnstalleerd).
WAARSCHUWING: Voordat u wijzigingen aanbrengt in de configuratie van een productieserver, wordt u ten zeerste aangeraden om een deskundige databasebeheerder te raadplegen om ervoor te zorgen dat een aanbeveling van mysqltuner geen negatieve invloed heeft op een bestaande instelling.
Samenvatting
In dit artikel hebben wij uitgelegd hoe een MariaDB-databaseserver geconfigureerd kan worden nadat deze geïnstalleerd en beveiligd is. De configuratievariabelen die in de bovenstaande tabel vermeld staan, zijn slechts enkele instellingen die u kunt overwegen bij het voorbereiden van de server voor gebruik of bij het optimaliseren ervan op een later moment. Raadpleeg altijd de officiële MariaDB-documentatie voordat u wijzigingen aanbrengt of bekijk onze tips voor het optimaliseren van de prestaties van MariaDB:
Mis het niet: 15 handige tips voor het optimaliseren van de prestaties van MariaDB
Zoals altijd, aarzel niet om ons te laten weten als u vragen of opmerkingen heeft over dit artikel. Gebruikt u nog andere serverinstellingen? Deel deze gerust met de rest van de community via het onderstaande reactieformulier.
Source:
https://www.tecmint.com/install-secure-performance-tuning-mariadb-database-server/