Sådan installeres, sikres og præstationsindstilling af MariaDB-databaseserver
En databaseserver er en kritisk komponent i netværksinfrastrukturen, der er nødvendig for nutidens applikationer. Uden evnen til at gemme, hente, opdatere og slette data (når det er nødvendigt) bliver nytten og omfanget af web- og desktop-apps meget begrænset.
Derudover er det vigtigt at kende, hvordan man installerer, administrerer og konfigurerer en databaseserver (så den fungerer som forventet), som enhver systemadministrator skal have.
I denne artikel vil vi kort gennemgå, hvordan du installerer og sikrer en MariaDB-databaseserver, og derefter forklarer vi, hvordan du konfigurerer den.
Installation og sikring af en MariaDB-server
I CentOS 7.x erstattede MariaDB MySQL, som stadig kan findes i Ubuntu (sammen med MariaDB). Det samme gælder for openSUSE.
For kortfattethed bruger vi kun MariaDB i denne vejledning, men bemærk at udover at have forskellige navne og udviklingsfilosofier er begge Relational DataBase Management Systems (forkortet RDBMS'er) næsten identiske.
Dette betyder, at klientsides kommandoer er de samme på både MySQL og MariaDB, og konfigurationsfilerne er navngivet og placeret de samme steder.
For at installere MariaDB skal du gøre:
--------------- 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
Bemærk, at i Ubuntu bliver du bedt om at indtaste en adgangskode til RDBMS-rodbrugeren.
Når ovenstående pakker er installeret, skal du sørge for, at databasetjenesten kører og er blevet aktiveret til start ved opstart (i CentOS og openSUSE skal du udføre denne operation manuelt, mens installationsprocessen i Ubuntu allerede har taget sig af det for dig):
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # systemctl start mariadb && systemctl enable mariadb --------------- On openSUSE --------------- # systemctl start mysql && systemctl enable mysql
Kør derefter mysql_secure_installation
scriptet. Denne proces giver dig mulighed for at:
- indstil/nulstil adgangskoden til RDBMS-rodbrugeren
- fjern anonyme logins (hvilket gør det kun muligt for brugere med en gyldig konto at logge ind på RDBMS)
- deaktiver rodadgang for andre maskiner end localhost
- fjern testdatabasen (som alle kan få adgang til)
- aktiver ændringer, der er knyttet til 1 til 4.
For en mere detaljeret beskrivelse af denne proces kan du henvise til afsnittet Efter installation i Install MariaDB Database i RHEL/CentOS/Fedora og Debian/Ubuntu.
Konfiguration af MariaDB Server
Standardkonfigurationsindstillingerne læses fra følgende filer i den givne rækkefølge: /etc/mysql/my.cnf
, /etc/my.cnf
og ~ /.my.cnf
.
Ofte findes der kun /etc/my.cnf
. Det er på denne fil, at vi indstiller serverindstillingerne (som kan tilsidesættes med de samme indstillinger i ~/.my.cnf
for hver bruger).
Den første ting, vi skal bemærke om my.cnf
, er, at indstillingerne er organiseret i kategorier (eller grupper), hvor hvert kategorinavn er lukket med firkantede parenteser.
Serversystemkonfigurationer er angivet i [mysqld]
sektionen, hvor du typisk kun finder de to første indstillinger i nedenstående tabel. Resten er andre ofte anvendte indstillinger (hvor det er angivet, ændrer vi standardværdien med en brugerdefineret en af vores valg):
Vi ændrer dette for at instruere tjenesten om kun at lytte til dens hovedadresse (192.168.0.13):
bind_adresse = 192.168.0.13
Vi erstatter standardværdien (3306) med 20500 (men vi skal sørge for, at intet andet bruger den port):
port = 20500
Mens nogle mennesker vil hævde, at sikkerhed gennem uklarhed ikke er god praksis, er det en rudimentær - endnu effektiv - metode at ændre standardapplikationsporte til højere.
Vi erstatter standardværdien med 256 MB:
innodb_buffer_pool_size = 256M
Medmindre du har brug for værtsnavne for at bestemme tilladelser, anbefales det at deaktivere denne variabel (for at fremskynde forbindelser og forespørgsler) ved at indstille dens værdi til 1:
skip_name_resolve = 1
Du skal vælge en cache-størrelse for forespørgsel, der passer til dine behov, baseret på 1) antallet af gentagne forespørgsler og 2) det omtrentlige antal poster, som de gentagne forespørgsler forventes at returnere. Vi indstiller denne værdi indtil videre til 100 MB:
query_cache_size = 100 mio.
max_connections = 30Hver forbindelse bruger en tråd og forbruger således hukommelse. Tag denne kendsgerning i betragtning, mens du indstiller max_connections.
Igen afhænger dette af antallet af forbindelser, du forventer. Vi kan sikkert indstille denne værdi til halvdelen af antallet af max_connections:
thread_cache_size = 15
# yum install policycoreutils-python # semanage port -a -t mysqld_port_t -p tcp 20500
Genstart derefter MariaDB-tjenesten.
Tuning af MariaDB Performance
For at hjælpe os med at kontrollere og indstille konfigurationen efter vores specifikke behov kan vi installere mysqltuner (et script, der giver forslag til at forbedre vores databaseservers ydeevne og øge dens stabilitet):
# wget https://github.com/major/MySQLTuner-perl/tarball/master # tar xzf master
Skift derefter bibliotek til den mappe, der er ekstraheret fra tarballen (den nøjagtige version kan variere i dit tilfælde):
# cd major-MySQLTuner-perl-7dabf27
og kør det (du bliver bedt om at indtaste legitimationsoplysningerne for din administrative MariaDB-konto)
# ./mysqltuner.pl
Outputtet af scriptet er i sig selv meget interessant, men lad os springe til bunden, hvor de variabler, der skal justeres, er angivet med den anbefalede værdi:
Indstillingen query_cache_type
angiver, om forespørgselscachen er deaktiveret (0) eller aktiveret (1). I dette tilfælde råder mysqltuner os til at deaktivere det.
Så hvorfor rådes det til at deaktivere det nu? Årsagen er, at forespørgselscachen hovedsagelig er nyttig i scener med høj læsning/lav skrivning (hvilket ikke er tilfældet, da vi lige har installeret databaseserveren).
ADVARSEL: Inden du foretager ændringer i konfigurationen af en produktionsserver, opfordres du stærkt til at konsultere en ekspertdatabase-administrator for at sikre, at en anbefaling fra mysqltuner ikke påvirker en eksisterende indstilling negativt.
Resumé
I denne artikel har vi forklaret, hvordan man konfigurerer en MariaDB-databaseserver, efter at vi har installeret og sikret den. De konfigurationsvariabler, der er anført i tabellen ovenfor, er kun et par indstillinger, som du måske vil overveje, når du forbereder serveren til brug eller når du indstiller den senere. Se altid den officielle MariaDB-dokumentation, før du foretager ændringer, eller se vores MariaDB Performance tuning tips:
Som altid, tøv ikke med at fortælle os, hvis du har spørgsmål eller kommentarer til denne artikel. Er der andre serverindstillinger, du gerne vil bruge? Del gerne med resten af samfundet ved hjælp af nedenstående kommentarformular.