Namestitev in osnovna optimizacija MariaDB na CentOS-u

V tem članku bom preučil značilnosti namestitve, osnovno konfiguracijo in optimizacijo strežnika baz podatkov MariaDB. Moja naloga je bila, da namestim MariaDB in izvedem osnovno konfiguracijo v Linuxu CentOS 7. Ker je to aktualna težava, upam, da vam bo članek koristen. Na koncu članka bom navedel nekaj primerov konfiguracijskih datotek in z njimi lahko izberete parametre za vaš strežnik.

Vsebina:

  • Namestite MariaDB na CentOS
  • Zaščita in varnost MariaDB
  • Preverjanje povezave s strežnikom MariaDB
  • Nastavitev konfiguracijske datoteke MariaDB
  • Optimizacija zmogljivosti in uglaševanje MariaDB
  • Osnovni ukazi za delo v konzoli MariaDB

Namestite MariaDB na CentOS

Nedavno je MariaDB vključena v standardno osnovno shrambo za CentOS 7, vendar to shramba vsebuje različico 5.5. Ta različica ni več pomembna, ima težave z zmogljivostmi in v InnoDB ni iskanja v celotnem besedilu. V času pisanja je trenutna različica MariaDB 10,4, zato s povezovanjem na naš Linux strežnik prek ssh najprej povežemo razvijalski repozitorij mariadb.org in nato začnemo nameščati strežnik baz podatkov.

Navajen sem delati z datotekami prek nano urejevalnika, ga namestiti prek yum:

yum namestite nano

In odprite datoteko repozitorija za urejanje:

nano /etc/yum.repos.d/mariadb.repo

In dodajte naslednje podatke:

[mariadb] ime = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey = https: //yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck = 1 

Shranite datoteko in zaženite namestitev:

namestite MariaDB-strežnik MariaDB-odjemalec -y

Namestitev je končana, zdaj morate storitvi dodati zagon in zagon:

systemctl start mariadb
systemctl omogočiti mariadb

Preverite stanje storitve:

systemctl status mariadb

Storitev Mariadb je zagnana, tako da lahko nadaljujete s konfiguracijo.

Zaščita in varnost MariaDB

Ko smo namestili in zagnali MariaDB, lahko nadaljujemo z varnostnimi nastavitvami. Zaženite vgrajeni skript:

/ usr / bin / mysql_secure_installation

Ta scenarij podrobno opisuje vsak korak in se na vsakem od njih ne bomo podrobno podrobneje opisali. Najprej bo zahteval korensko geslo, vendar ga po začetni namestitvi ni, zato pritisnemo enter in na naslednji stopnji nastavimo kompleksno geslo (odvisno je od tega, kako varen bo vaš strežnik). Po tem lahko pritisnete "enter" do konca izvedbe skripta, anonimni uporabniki, oddaljena korenska prijava, pa tudi testne tabele bodo izbrisane in privilegije se naložijo.

Če se želite povezati s strežnikom mariadb, morate v požarnem zidu Linux ustvariti pravila s pomočjo iptables:

iptables -I VHOD -p tcp --portport 3306 -m stanje - država NOVO, USTAVLJEN -j SPREJEM
iptables-save> / etc / sysconfig / iptables

Po izbiri lahko dovolite odhodne povezave z drugimi bazami podatkov MariaDB.

iptables -I IZHOD -p tcp --sport 3306 -m stanje - ustanavljam -j SPREJEM

Preverjanje povezave s strežnikom MariaDB

Prepričajte se, da je namestitev MariaDB uspešna.

Povežite se s strežnikom baz podatkov z vgrajenim orodjem mysqladmin:

različica mysqladmin

Ukaz bo ustvaril rezultat:

mysqladmin Ver 9.1 Distrib 10.4.7-MariaDB, za Linux na x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab in drugi. Različica strežnika 10.4.7-MariaDB protokol različica 10 Povezava Localhost prek vtičnice UNIX UNIX vtičnica /var/lib/mysql/mysql.sock Uptime: 11 min 35 sec Niti: 7 Vprašanja: 26 Počasne poizvedbe: 0 Odpira se: 20 Flush tabel: 1 Odpri zavihek

To pomeni, da je bila namestitev MariaDB uspešna, baza podatkov je pripravljena in deluje..

Za interaktivno izvajanje ukazov sql se lahko povežete s konzolo maridb strežnika:

mysql -u root -p

Nastavitev konfiguracijske datoteke MariaDB

Običajno po namestitvi MariaDB dodam v konfiguracijsko datoteko /etc/my.cnf njegova standardna konfiguracija, ki deluje na več strežnikih in doslej ni bilo težav z bazami podatkov. Očistite my.cnf in mu dodajte naslednje:

[mysqld] local-infile = 0 datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock symbolic-links = 0 max_allowed_packet = 128M sql_mode = "" log-error = / var / log / mysql -error.log # predpomnilnika parametri query_cache_size = 16M table_open_cache = 4096 thread_cache_size = 16 key_buffer_size = 8M thread_stack = 256 join_buffer_size = 2M sort_buffer_size = 2M # parametri za začasne tabele TMPDIR = / tmp max_heap_table_size = 32M tmp_table_size = 32M # InnoDB parametri innodb_file_per_table innodb_buffer_pool_size = 32M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT innodb_use_native_aio = 0 transakcija-izolacija = READ-COMMITTED znak-niz-strežnik = utf8 collation-server = utf8_unicode_ci init-connect = "NASTAVI NAMESryc_pcptpt__pictpt_pict_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pictpt_pick imena max_allowed_packet = 128M privzeti niz znakov = utf8 [mysql] [isamchk] key_buffer = 16M [mysqld_safe] log-error = / var / log / mariadb / mariadb.log pid-file = / var / run / mariadb / mariadb. pid 

Za splošno razumevanje bomo analizirali glavne parametre konfiguracijske datoteke my.cnf:

  • datadir - imenik za shranjevanje datotek baze podatkov;
  • tmpdir - imenik za shranjevanje začasnih datotek;
  • preskoči-ime-razreši - onemogoči ločljivost DNS;
  • max_allowed_packet - največja velikost paketa. Če se v bazi podatkov uporabljajo blob polja, morate vrednost nastaviti vsaj na največje polje;
  • max_connections - največje število odprtih povezav, parameter določa, koliko odjemalcev lahko hkrati dela s strežnikom baz podatkov;
  • Oddelek # Parametri predpomnilnika - vse, kar je povezano s predpomnilnikom poizvedb; nastavitev previsokih vrednosti ni priporočljiva, saj se bo poraba virov na strežniku baz podatkov povečala;
  • Oddelek # Parametri InnoDB - vse, kar je povezano z innodb tabelami;
  • innodb_buffer_pool_size - predpomnilnik za podatke in indekse, če se na strežniku nahajajo 1-2 projekta, nastavite vrednost na 70-80% razpoložljivega RAM-a;
  • innodb_flush_method - za Linux nastavite vrednost na O_DIRECT, to bo onemogočilo predpomnjenje na ravni OS;
  • innodb_flush_log_at_trx_commit - ta parameter vpliva na hitrost zapisovanja v table tabeleDD. Ta parameter vzemite resno in z nastavitvijo vrednosti na 0 dobite večjo uspešnost, vendar se tveganje izgube podatkov poveča. Raje nastavim na 2, saj velikega dela dela strežnika baz podatkov nisem opazil, varnost pa je predvsem.

Optimizacija zmogljivosti in uglaševanje MariaDB

Želim dodati, da se vam ni treba posebej zanašati na mojo konfiguracijsko datoteko, priporočljivo je, da izberete svoje lastne parametre za vsak strežnik in za vsak projekt. Priporočam uporabo skriptov za samodejno preverjanje konfiguracije MariaDB, ki po izvedbi dajo nekaj priporočil za optimizacijo strežnika.

Namestite skript Tuning-Primer.sh:

yum namestite bc net-tools -y

Prenesite skript:

wget https://launchpadlibrarian.net/78745738/tuning-primer.sh

Pravice dajemo:

chmod + x tuning-primer.sh

Izvajamo:

./tuning-primer.sh

Po izvedbi vam bo skript dal vse informacije, s katerimi se morate seznaniti. Pomembne točke bodo označene z rdečo barvo in jih boste morali popraviti, kadar koli je to mogoče..

Na primer, moj skript je takoj pokazal, da je število uporabljenih povezav veliko manjše od tiste, ki sem jo nastavil:

Ta parameter je mogoče spremeniti, tako v datoteki my.cnf kot prek konzole, zmanjšal sem na 10 in skript me pohvalil:

S pomočjo takšnih manipulacij lahko privedete do idealnega delovanja vašega strežnika baz podatkov.

Želim opozoriti, da je priporočeni neprekinjeni čas delovanja strežnika baz podatkov vsaj 48 ur, potem bodo informacije natančnejše in na podlagi tega boste morali izvesti nastavitev.

V mojo konfiguracijsko datoteko lahko dodate razdelek, da aktivirate dnevnik počasnih poizvedb, kar vam bo pomagalo analizirati delo vaših projektov. V razdelku "mysqld" dodajte:

slow_query_log = 1 # omogoči dnevnik počasnih poizvedb long_query_time = 5 # nastavi čas v sekundah slow_query_log_file = /var/log/slow-query.log # ime in pot do dnevniške datoteke počasnih poizvedb

Prav tako morate ustvariti dnevniške datoteke za MariaDB in počasne napake v dnevniku poizvedb:

dotaknite se /var/log/mysql-error.log
dotaknite se /var/log/slow-query.log

Ponovno zaženemo storitev:

systemctl znova zaženite mariadb

Dnevnik počasnih poizvedb si lahko ogledate tako, da odprete datoteko /var/log/slow-query.log ali v realnem času preverite:

rep -f /var/log/slow-query.log

Tako lahko analizirate poizvedbe v bazi podatkov o vašem projektu in na podlagi tega opravite revizijo.

Po kakršnih koli spremembah nastavitev baze podatkov morate preveriti, ali so v konfiguraciji napake:

Bodite prepričani, da po vsem delu z nastavitvijo baz podatkov preverite stanje napak, tako da zaženete ukaz:

systemctl status mariadb -l

Osnovni ukazi za delo v konzoli MariaDB

Sledijo glavni ukazi cli-jev, ki jih mora skrbnik najpogosteje uporabljati pri delu v maridb konzoli.

Če se želite lokalno prijaviti v konzolo MariaDB, zaženite:

mysql -u root -p

Za daljinsko povezavo s strežnikom baz podatkov MariaDB:

mysql -u root -p -h 10.1.1.20

Uporabni ukazi:

ustvarite bazo podatkov db1; - ustvarite bazo podatkov z imenom db1

prikaži baze podatkov; - seznam ustvarjenih baz podatkov

uporabite db1; - vnesite bazo podatkov z imenom db1

prikažite tabele; - prikažite tabele baz podatkov, v katerih smo

ustvari uporabnika 'test' @ 'localhost', identificiran z '123456'; - ustvarite uporabniški test in nastavite geslo 123456 (uporabite bolj zapletena gesla)

dodelite vse privilegije za ime_datoteke. * za 'test' @ 'localhost'; - dati popolne pravice za uporabniški test

flush privilegiji; - posodobite vse privilegije

prikaži seznam procesov; - si oglejte aktivne povezave v bazi podatkov ali pa uporabite ukaz:

prikaže stanje, kjer je 'spremenljivo_ime' = 'Niti_povezane';

Tudi s konzole mysql si lahko ogledate ali spremenite parametre, na primer:

PRIKAŽITE VARIABLES LIKE "max_error_count";

Uredi:

SET max_error_count = 256;

Na koncu bi rad povedal, da se morate pri postavitvi strežnika baz podatkov zanašati na projekte, ki bodo gostili ta strežnik. Kar velja za majhne projekte, v bistvu morda ni primerno za velik projekt. Poskusite, eksperimentirajte in najpomembnejše je, da vedno pogledate v dnevnike. V naslednjem članku bomo pokazali, kako organizirati visoko razpoložljivost in povečati zmogljivost aplikacij z uporabo podvajanja med strežniki v MariDB.