Kako namestiti, varno in prilagoditi delovanje strežnika baz podatkov MariaDB
Strežnik baz podatkov je ključna komponenta omrežne infrastrukture, ki je potrebna za današnje aplikacije. Brez možnosti shranjevanja, pridobivanja, posodabljanja in brisanja podatkov (kadar je to potrebno) sta uporabnost in obseg spletnih in namiznih aplikacij zelo omejena.
Poleg tega je znanje namestitve, upravljanja in konfiguriranja strežnika baz podatkov (tako da deluje po pričakovanjih) bistvena spretnost, ki jo mora imeti vsak sistemski skrbnik.
V tem članku bomo na kratko pregledali, kako namestiti in zavarovati strežnik baz podatkov MariaDB, nato pa bomo razložili, kako ga konfigurirati.
Namestitev in zavarovanje strežnika MariaDB
V CentOS 7.x je MariaDB zamenjal MySQL, ki ga še vedno najdemo v Ubuntuju (skupaj z MariaDB). Enako velja za openSUSE.
Za kratkost bomo v tej vadnici uporabili samo MariaDB, vendar upoštevajte, da sta poleg različnih imen in razvojnih filozofij oba sistema relacijskega upravljanja baz podatkov (na kratko RDBMS) skoraj enaka.
To pomeni, da so ukazi na strani odjemalca na MySQL in MariaDB enaki, konfiguracijske datoteke pa so poimenovane in nameščene na istih mestih.
Če želite namestiti MariaDB, naredite:
--------------- 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
Upoštevajte, da boste v Ubuntuju morali vnesti geslo za korenskega uporabnika RDBMS.
Ko so zgornji paketi nameščeni, se prepričajte, da se storitev baze podatkov izvaja in je bila aktivirana za zagon ob zagonu (v CentOS in openSUSE boste morali to operacijo izvesti ročno, medtem ko bo v Ubuntuju postopek namestitve že poskrbel za to zate):
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # systemctl start mariadb && systemctl enable mariadb --------------- On openSUSE --------------- # systemctl start mysql && systemctl enable mysql
Nato zaženite skript mysql_secure_installation
. Ta postopek vam bo omogočil:
- nastavite/ponastavite geslo za korenskega uporabnika RDBMS
- odstranite anonimne prijave (s tem omogočite prijavo v RDBMS samo uporabnikom z veljavnim računom)
- onemogočite korenski dostop za računalnike, ki niso localhost
- odstranite testno bazo podatkov (do katere ima dostop vsakdo)
- aktivirajte spremembe, povezane z 1 do 4.
Za podrobnejši opis tega postopka si lahko ogledate razdelek Post installation v poglavju Install MariaDB Database v RHEL/CentOS/Fedora in Debian/Ubuntu.
Konfiguriranje strežnika MariaDB
Privzete možnosti konfiguracije se berejo iz naslednjih datotek v danem vrstnem redu: /etc/mysql/my.cnf
, /etc/my.cnf
in ~ /.my.cnf
.
Najpogosteje obstaja samo /etc/my.cnf
. V tej datoteki bomo nastavili nastavitve za celoten strežnik (ki jih lahko preglasimo z enakimi nastavitvami v ~/.my.cnf
za vsakega uporabnika).
Prva stvar, ki jo moramo opozoriti pri my.cnf
, je, da so nastavitve razvrščene v kategorije (ali skupine), kjer je vsako ime kategorije zaprto v oglatih oklepajih.
Konfiguracije strežniškega sistema so podane v odseku [mysqld]
, kjer običajno najdete le prvi dve nastavitvi v spodnji tabeli. Ostalo so druge pogosto uporabljene možnosti (kjer je navedeno, bomo privzeto vrednost spremenili s prilagojeno po svoji izbiri):
To bomo spremenili tako, da bomo službi naročili, naj posluša samo na glavni naslov (192.168.0.13):
bind_address = 192.168.0.13
Privzeto vrednost (3306) bomo zamenjali z 20500 (vendar se moramo prepričati, da ta vrata ne uporablja nič drugega):
vrata = 20500
Medtem ko bodo nekateri trdili, da varnost zaradi nejasnosti ni dobra praksa, je spreminjanje privzetih vrat aplikacij za višja osnovna - še vedno učinkovita - metoda za odvračanje od pregledov vrat.
Privzeto vrednost bomo zamenjali s 256 MB:
innodb_buffer_pool_size = 256M
Če za določitev dovoljenj ne potrebujete imen gostiteljev, je priporočljivo to spremenljivko onemogočiti (da bi pospešili povezave in poizvedbe) tako, da nastavite njeno vrednost na 1:
preskoči_ime_resolve = 1
Izberite velikost predpomnilnika poizvedb, ki ustreza vašim potrebam, glede na 1) število ponavljajočih se poizvedb in 2) približno število zapisov, ki naj bi jih te ponavljajoče se poizvedbe vrnile. Zaenkrat bomo to vrednost nastavili na 100 MB:
query_cache_size = 100M
max_connections = 30 Vsaka povezava bo uporabila nit in bo tako porabila pomnilnik. To dejstvo upoštevajte pri nastavitvi max_connections.
Še enkrat, to je odvisno od števila povezav, ki jih pričakujete. To vrednost lahko varno nastavimo na polovico števila max_connections:
thread_cache_size = 15
# yum install policycoreutils-python # semanage port -a -t mysqld_port_t -p tcp 20500
Nato znova zaženite storitev MariaDB.
Nastavitev zmogljivosti MariaDB
Za pomoč pri preverjanju in nastavljanju konfiguracije glede na naše posebne potrebe lahko namestimo mysqltuner (skript, ki bo vseboval predloge za izboljšanje učinkovitosti našega strežnika baz podatkov in povečanje njegove stabilnosti):
# wget https://github.com/major/MySQLTuner-perl/tarball/master # tar xzf master
Nato spremenite imenik v mapo, izvlečeno iz tarball (natančna različica se lahko v vašem primeru razlikuje):
# cd major-MySQLTuner-perl-7dabf27
in ga zaženite (pozvani boste, da vnesete poverilnice svojega skrbniškega računa MariaDB)
# ./mysqltuner.pl
Rezultat skripta je že sam po sebi zelo zanimiv, vendar pojdimo na dno, kjer so spremenljivke, ki jih je treba prilagoditi, navedene s priporočeno vrednostjo:
Nastavitev query_cache_type
označuje, ali je predpomnilnik poizvedb onemogočen (0) ali omogočen (1). V tem primeru nam mysqltuner svetuje, da ga onemogočimo.
Zakaj torej svetujemo, da ga zdaj deaktiviramo? Razlog je v tem, da je predpomnilnik poizvedb uporaben predvsem v scenarijih z visokim branjem/nizkim zapisom (kar pa ni naš primer, saj smo pravkar namestili strežnik baze podatkov).
OPOZORILO: Preden spremenite konfiguracijo delovnega strežnika, vas prosimo, da se obrnete na strokovnjaka skrbnika baze podatkov, da zagotovite, da priporočilo mysqltunerja ne bo negativno vplivalo na obstoječo nastavitev.
Povzetek
V tem članku smo razložili, kako konfigurirati strežnik baz podatkov MariaDB, potem ko smo ga namestili in zavarovali. Konfiguracijske spremenljivke, navedene v zgornji tabeli, so le nekatere nastavitve, ki jih boste morda želeli upoštevati pri pripravi strežnika na uporabo ali pri poznejši nastavitvi. Pred spremembami se vedno sklicujete na uradno dokumentacijo MariaDB ali se obrnite na naše nasvete za nastavitev učinkovitosti MariaDB:
Kot vedno nas ne oklevajte obvestiti, če imate kakršna koli vprašanja ali komentarje glede tega članka. Ali obstajajo še kakšne druge nastavitve strežnika, ki jih želite uporabljati? Lahko delite s preostalo skupnostjo s pomočjo spodnjega obrazca za komentar.