Instalacija i osnovna optimizacija MariaDB-a na CentOS-u

U ovom ću članku razmotriti značajke instalacije, osnovnu konfiguraciju i optimizaciju poslužitelja baze podataka MariaDB. Moj je zadatak bio instalirati MariaDB i izvršiti osnovnu konfiguraciju na Linuxu CentOS 7. Budući da je ovo aktualno pitanje, nadam se da će vam članak biti koristan. Na kraju članka dat ću nekoliko primjera konfiguracijskih datoteka i pomoću njih možete odabrati parametre za svoj poslužitelj.

sadržaj:

  • Instalirajte MariaDB na CentOS
  • Zaštita i sigurnost MariaDB
  • Provjera veze s poslužiteljem MariaDB
  • Postavljanje MariaDB konfiguracijske datoteke
  • Optimizacija i podešavanje performansi MariaDB
  • Osnovne naredbe za rad na konzoli MariaDB

Instalirajte MariaDB na CentOS

Nedavno je MariaDB uključena u standardno osnovno spremište za CentOS 7, ali to spremište sadrži verziju 5.5. Ova verzija više nije relevantna, ima problema s performansama i nema pretraživanja teksta u InnoDB-u. U trenutku pisanja teksta, trenutna verzija MariaDB iznosi 10,4, tako da spajanjem na naš Linux poslužitelj putem ssh-a prvo povežemo razvojno skladište programera mariadb.org, a zatim započinjemo s instaliranjem poslužitelja baze podataka.

Navikao sam raditi s datotekama kroz nano editor, instalirati ga putem yum:

yum instalirati nano -y

I otvorite datoteku spremišta za uređivanje:

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

I tamo dodajte sljedeće podatke:

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

Spremite datoteku i pokrenite instalaciju:

instalirate MariaDB-poslužitelj MariaDB-klijent -y

Instalacija je dovršena, sada morate dodati uslugu za pokretanje i pokretanje:

systemctl start mariadb
systemctl omogućuju mariadb

Provjerite status usluge:

systemctl status mariadb

Mariadb usluga je pokrenuta, tako da možete nastaviti s konfiguriranjem.

Zaštita i sigurnost MariaDB

Nakon što smo instalirali i pokrenuli MariaDB, možemo pristupiti sigurnosnim postavkama. Pokrenite ugrađenu skriptu:

/ usr / bin / mysql_secure_installation

Ovaj scenarij detaljno opisuje svaki korak i nećemo se detaljno zaustaviti na svakom od njih. Prvo će tražiti root lozinku, ali nakon početne instalacije ona nije tu i zato pritisnemo enter i u sljedećoj fazi postavimo složenu lozinku (ovisi o sigurnosti vašeg poslužitelja). Nakon toga možete pritisnuti "enter" do kraja izvršenja skripte, anonimni korisnici, daljinska prijava za korijen, kao i testne tablice bit će izbrisane i povlastice će se ponovo učitati.

Da biste se povezali s mariadb poslužiteljem, morate kreirati pravila u Linux vatrozidu koristeći iptables:

iptables -I ULAZ -p tcp --portport 3306 -m stanje - drzava NOVO, USTANOVLJEN -j PRIHVAT
iptables-save> / etc / sysconfig / iptables

Po želji možete dopustiti odlazne veze s drugim MariaDB bazama podataka.

iptables -I OUTPUT -p tcp --sport 3306 -m stanje --state UTVRĐENO -j PRIHVAT

Provjera veze s poslužiteljem MariaDB

Provjerite je li instalacija MariaDB uspješna.

Povežite se s poslužiteljem baze podataka pomoću ugrađenog alata mysqladmin:

verzija mysqladmin

Naredba će proizvesti rezultat:

mysqladmin Ver 9.1 Distrib 10.4.7-MariaDB, za Linux na x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab i drugi. Verzija poslužitelja 10.4.7-MariaDB protokol verzija 10 Spajanje Localhost putem UNIX utičnice UNIX utičnica /var/lib/mysql/mysql.sock Uptime: 11 min 35 sec Teme: 7 Pitanja: 26 Spori upiti: 0 Otvara: 20 Tablice ispiranja: 1 Otvori karticu

To znači da je instalacija MariaDB bila uspješna, baza podataka je pokrenuta..

Možete se povezati s konzolom maridb poslužitelja za interaktivno izvršavanje sql naredbi:

mysql -u korijen -p

Postavljanje MariaDB konfiguracijske datoteke

Obično nakon instaliranja MariaDB dodajem u konfiguracijsku datoteku /etc/my.cnf njegova standardna konfiguracija, koja radi na više poslužitelja i dosad nije bilo problema s bazama podataka. Očistite moj.cnf i dodajte mu sljedeće:

[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 cache parametri query_cache_size = 16M table_open_cache = 4096 thread_cache_size = 16 key_buffer_size = 8M thread_stack = 256K join_buffer_size = 2M sort_buffer_size = 2M # parametri privremenih tablica 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-set-server = utf8 collation-server = utf8_unicode_ci init-connect = "POSTAVI NAMESptc__pictpt__pictpt_s_pictpt_s_pictpt_pict_pict_pictpt_s_pictpt_pict_pictpt_pict_pict_pict_pict_pict_p_ imena max_allowed_packet = 128M zadani set znakova = utf8 [mysql] [isamchk] key_buffer = 16M [mysqld_safe] log-error = / var / log / mariadb / mariadb.log pid-file = / var / run / mariadb / mariadb. pid 

Za opće razumijevanje, analizirat ćemo glavne parametre konfiguracijske datoteke my.cnf:

  • datadir - imenik za pohranu datoteka baze podataka;
  • tmpdir - imenik za pohranu privremenih datoteka;
  • preskočite-ime-odlučnost - onemogućuje DNS rezoluciju;
  • max_allowed_packet - maksimalna veličina paketa. Ako se polja baze koriste u bazi podataka, morate postaviti vrijednost na najmanje najveće polje;
  • max_connections - maksimalni broj otvorenih veza, parametar određuje koliko klijenata može istovremeno raditi sa poslužiteljem baze podataka;
  • odjeljak # Parametri predmemorije - sve u vezi s predmemorijom upita; previsoko postavljanje vrijednosti jer se povećava potrošnja resursa od strane poslužitelja baze podataka;
  • odjeljak # InnoDB parametara - sve vezano za innodb tablice;
  • innodb_buffer_pool_size - spremnik predmemorije podataka i indeksa, ako se 1-2 poslužitelja nalaze na poslužitelju, postavite vrijednost na 70-80% dostupnog RAM-a;
  • innodb_flush_method - za Linux postavite vrijednost na O_DIRECT, to će onemogućiti predmemoriranje na razini OS-a;
  • innodb_flush_log_at_trx_commit - ovaj parametar utječe na brzinu pisanja inDD tablica. Ovaj parametar shvatite ozbiljno, postavljanjem vrijednosti na 0 dobivate više performansi, ali rizik gubitka podataka raste. Radije postavljam vrijednost na 2, budući da nisam primijetio veliko povećanje rada poslužitelja baze podataka, a sigurnost je iznad svega.

Optimizacija i podešavanje performansi MariaDB

Želim dodati da se ne morate posebno oslanjati na moju konfiguracijsku datoteku, preporučljivo je odabrati vlastite parametre za svaki poslužitelj i za svaki projekt. Preporučujem korištenje skripti za automatsku provjeru MariaDB konfiguracije, koje nakon izvršenja daju neke preporuke za optimizaciju poslužitelja.

Instalirajte skriptu Tuning-Primer.sh:

yum instalirati bc net-tools -y

Preuzmite skriptu:

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

Dajemo prava:

chmod + x tuning-primer.sh

Mi pokrećemo:

./tuning-primer.sh

Nakon izvršenja, skripta će vam dati sve informacije s kojima se morate upoznati. Važne bodove bit će označene crvenom bojom i morat ćete ih ispraviti kad god je to moguće..

Na primjer, moja je skripta odmah pokazala da je broj korištenih veza mnogo manji od onoga što sam postavio:

Ovaj se parametar može promijeniti, kako u datoteci my.cnf tako i putem konzole, smanjio sam ga na 10 i skripta me pohvalila:

Uz pomoć takvih manipulacija možete dovesti do idealnog rada vašeg poslužitelja baze podataka.

Želim napomenuti da je preporučeno kontinuirano radno vrijeme poslužitelja baze podataka najmanje 48 sati, tada će podaci biti točniji i na temelju toga morat ćete provesti podešavanje.

U moju konfiguracijsku datoteku možete dodati odjeljak za aktiviranje dnevnika sporih upita, ovo će vam pomoći u analizi rada vaših projekata. U odjeljku "mysqld" dodajte:

slow_query_log = 1 # omogućite dnevnik sporih upita long_query_time = 5 # postavite vrijeme u sekundi slow_query_log_file = /var/log/slow-query.log # ime i put do datoteke datoteke dnevnih spora upita

Morate stvoriti i datoteke dnevnika za MariaDB i sporo pogreške u zapisniku upita:

dodirnite /var/log/mysql-error.log
dodirnite /var/log/slow-query.log

Ponovno pokrećemo uslugu:

systemctl ponovno pokrenuti mariadb

Dnevnik sporih upita možete pregledati otvaranjem datoteke /var/log/slow-query.log ili provjerom u stvarnom vremenu:

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

Dakle, možete analizirati upite u bazu podataka vašeg projekta i na temelju toga provesti reviziju.

Nakon bilo kakvih promjena u podešavanjima baze podataka, morate provjeriti da li ima grešaka u konfiguraciji:

Budite sigurni da nakon svih poslova s ​​postavljanjem baza podataka, provjerite status za pogreške izvršavanjem naredbe:

systemctl status mariadb -l

Osnovne naredbe za rad na konzoli MariaDB

Slijede glavne naredbe klipova koje administrator najčešće mora koristiti tijekom rada u maridb konzoli.

Da biste se lokalno prijavili na MariaDB konzolu, pokrenite:

mysql -u korijen -p

Da se daljinsko povežete s poslužiteljem baze podataka MariaDB:

mysql -u korijen -p -h 10.1.1.20

Korisne naredbe:

stvoriti bazu podataka db1; - stvorite bazu podataka pod nazivom db1

prikažite baze podataka; - popis kreiranih baza podataka

koristite db1; - unesite bazu podataka s imenom db1

prikažite tablice; - prikažite tablice baza podataka u kojima se nalazimo

stvoriti korisničko 'test' @ 'localhost' identificirano s '123456'; - stvorite korisnički test i postavite lozinku 123456 (koristite složenije lozinke)

dodijeli sve privilegije na ime baze podataka. * za 'test' @ 'localhost'; - dati puna prava na test korisnika

ispiranje privilegija; - ažurirajte sve privilegije

prikaži popis procesa; - pogledajte aktivne veze u bazi podataka ili možete koristiti naredbu:

prikaži status u kojem je 'varijabla_ime' = 'Konektori povezani';

Također, s mysql konzole možete pregledati ili promijeniti parametre, na primjer:

POKAŽITE VARIJABLIKE KAO 'max_error_count';

promijeniti:

SET max_error_count = 256;

Zaključno, želim reći da se pri postavljanju poslužitelja baze podataka morate pouzdati u projekte koji će biti domaćin na ovom poslužitelju. Ono što je načelno primjenjivo za male projekte, možda nije prikladno za veliki projekt. Pokušajte, eksperimentirajte i najvažnije je uvijek gledati u zapisnike. U sljedećem ćemo članku pokazati kako organizirati visoku dostupnost i povećati performanse aplikacija korištenjem replikacije između poslužitelja u MariDB-u.