Inštalácia a základná optimalizácia MariaDB na CentOS

V tomto článku sa budem zaoberať funkciami inštalácie, základnej konfigurácie a optimalizácie databázového servera MariaDB. Mojou úlohou bolo nainštalovať MariaDB a vykonať základnú konfiguráciu v systéme Linux CentOS 7. Pretože toto je aktuálny problém, dúfam, že tento článok bude pre vás užitočný. Na konci článku uvediem niekoľko príkladov konfiguračných súborov a môžete ich použiť na výber parametrov pre váš server.

obsah:

  • Nainštalujte MariaDB na CentOS
  • Ochrana a bezpečnosť MariaDB
  • Kontrola pripojenia na server MariaDB
  • Nastavenie konfiguračného súboru MariaDB
  • Optimalizácia výkonu a ladenie MariaDB
  • Základné príkazy pre prácu v konzole MariaDB

Nainštalujte MariaDB na CentOS

MariaDB je v súčasnosti zahrnutá do štandardného základného úložiska pre CentOS 7, ale toto úložisko obsahuje verziu 5.5. Táto verzia už nie je relevantná, má problémy s výkonom a v aplikácii InnoDB neexistuje fulltextové vyhľadávanie. V čase písania je súčasná verzia MariaDB 10,4, takže ak sa pripojíme k nášmu Linuxovému serveru cez ssh, najskôr pripojíme úložisko vývojárov mariadb.org a potom začneme inštalovať databázový server..

Som zvyknutý pracovať so súbormi pomocou editora nano, inštalovať ho pomocou yum:

yum install nano -y

A otvorte súbor úložiska na úpravy:

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

A sem zadajte nasledujúce informácie:

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

Uložte súbor a spustite inštaláciu:

yum nainštalujte server MariaDB MariaDB-client -y

Inštalácia je dokončená, teraz je potrebné pridať službu na spustenie a spustenie:

systemctl start mariadb
systemctl povoliť mariadb

Skontrolujte stav služby:

systemctl status mariadb

Služba Mariadb je funkčná a môžete pokračovať v konfigurácii.

Ochrana a bezpečnosť MariaDB

Po nainštalovaní a spustení MariaDB môžeme prejsť na nastavenia zabezpečenia. Spustite vstavaný skript:

/ usr / bin / mysql_secure_installation

Tento scenár podrobne popisuje každý krok a nebudeme sa podrobne zaoberať každým z nich. Najprv požiada o root heslo, ale po úvodnej inštalácii tam nie je, a preto stlačíme enter a v ďalšej fáze nastavíme zložité heslo (záleží na tom, aký bezpečný bude váš server). Potom môžete stlačiť kláves „enter“ až do konca vykonávania skriptu, anonymní používatelia, vzdialené prihlásenie root, ako aj testovacie tabuľky budú odstránené a oprávnenia budú znova načítané..

Ak sa chcete pripojiť k serveru mariadb, musíte si v Linuxe firewall vytvoriť pravidlá pomocou iptables:

iptables -I INPUT -p tcp --port 3306 -m state - state NEW, ESTABLISHED -j ACCEPT
iptables-save> / etc / sysconfig / iptables

Voliteľne môžete povoliť odchádzajúce pripojenia do iných databáz MariaDB.

iptables -I OUTPUT -p tcp --port 3306 -m state - stav ESTABLISHED -j ACCEPT

Kontrola pripojenia na server MariaDB

Uistite sa, že inštalácia MariaDB bola úspešná.

Pripojte sa k databázovému serveru pomocou zabudovaného nástroja mysqladmin:

verzia mysqladmin

Príkaz prinesie výsledok:

mysqladmin Ver 9.1 Distribuované 10.4.7-MariaDB, pre Linux na x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab a ďalšie. Verzia servera 10.4.7-MariaDB Protokol verzia 10 Pripojenie Localhost cez soket UNIX Zásuvka UNIX /var/lib/mysql/mysql.sock Uptime: 11 min 35 sec Vlákna: 7 Otázky: 26 Pomalé dotazy: 0 Otvorené: 20 Splachovacie tabuľky: 1 Otvorte kartu

To znamená, že inštalácia MariaDB bola úspešná, databáza je v prevádzke..

Môžete sa pripojiť ku konzole servera maridb a interaktívne vykonávať príkazy sql:

mysql -u root -p

Nastavenie konfiguračného súboru MariaDB

Obvykle po inštalácii MariaDB pridám do konfiguračného súboru /etc/my.cnf jeho štandardná konfigurácia, ktorá funguje na viacerých serveroch a doteraz neboli žiadne problémy s databázami. Vyčistite my.cnf a pridajte doň nasledujúce:

[mysqld] local-infile = 0 datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock symbolické odkazy = 0 max_allowed_packet = 128M sql_mode = "" log-error = / var / log / mysql -error.log # Cache parametre 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 # parametre pre dočasné tabuľky TMPDIR = / tmp max_heap_table_size = 32M tmp_table_size = 32M # InnoDB parametre 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 transakcia-izolácia = READ-COMMITTED character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = "SET NAMES utf8crycccccccptcpt_ptrycccccccptcpt_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_ptrycc_cry_crycccpt names max_allowed_packet = 128M default-character-set = utf8 [mysql] [isamchk] key_buffer = 16M [mysqld_safe] log-error = / var / log / mariadb / mariadb.log pid-file = / var / run / mariadb / mariadb. pid 

Pre všeobecné pochopenie budeme analyzovať hlavné parametre konfiguračného súboru my.cnf:

  • DataDir - adresár na ukladanie databázových súborov;
  • TMPDIR - adresár na ukladanie dočasných súborov;
  • preskočiť-name-rozhodnosť - zakáže rozlíšenie DNS;
  • max_allowed_packet - maximálna veľkosť paketu. Ak sa v databáze používajú polia blob, musíte hodnotu nastaviť najmenej na najväčšie pole;
  • max_connections - maximálny počet otvorených pripojení, parameter určuje, koľko klientov môže súčasne pracovať s databázovým serverom;
  • časť # Parametre vyrovnávacej pamäte - všetko súvisiace s vyrovnávacou pamäťou dopytov; príliš vysoké hodnoty nastavenia sa neodporúčajú, pretože spotreba zdrojov databázovým serverom porastie;
  • časť # InnoDB parametre - všetko sa týkalo vnútorných stolov;
  • innodb_buffer_pool_size - vyrovnávacia pamäť cache pre dáta a indexy, ak sa na serveri nachádza 1-2 projekty, nastavte hodnotu na 70 - 80% dostupnej pamäte RAM;
  • innodb_flush_method - v prípade systému Linux nastavte hodnotu na O_DIRECT, čím sa zakáže ukladanie do pamäte cache na úrovni OS;
  • innodb_flush_log_at_trx_commit - tento parameter ovplyvňuje rýchlosť zápisu tabuliek innoDB. Berte tento parameter vážne a nastavením hodnoty na 0 získate väčší výkon, ale zvyšuje sa riziko straty údajov. Radšej nastavím hodnotu 2, pretože som si nevšimol veľký nárast práce databázového servera a bezpečnosť je predovšetkým.

Optimalizácia výkonu a ladenie MariaDB

Chcel by som dodať, že sa nemusíte spoliehať konkrétne na môj konfiguračný súbor. Je vhodné vybrať vlastné parametre pre každý server a pre každý projekt. Na automatickú kontrolu konfigurácie MariaDB odporúčam používať skripty, ktoré po vykonaní poskytujú niekoľko odporúčaní na optimalizáciu servera.

Nainštalujte skript Tuning-Primer.sh:

yum install bc net-tools -y

Stiahnite si skript:

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

Udeľujeme práva:

chmod + x tuning-primer.sh

Spustili sme:

./tuning-primer.sh

Po spustení vám skript poskytne všetky informácie, ktoré potrebujete na zoznámenie sa. Dôležité body sa zvýraznia červenou farbou a budete ich musieť kedykoľvek opraviť..

Napríklad môj skript okamžite ukázal, že počet použitých pripojení je oveľa menší ako to, čo som nastavil:

Tento parameter je možné zmeniť v súbore my.cnf aj prostredníctvom konzoly a znížil som ho na 10 a skript ma ocenil:

Pomocou takýchto manipulácií môžete viesť k ideálnej prevádzke databázového servera.

Chcem poznamenať, že odporúčaný nepretržitý prevádzkový čas databázového servera je najmenej 48 hodín, potom budú informácie presnejšie a na základe toho budete musieť vykonať ladenie..

Do môjho konfiguračného súboru môžete pridať oddiel na aktiváciu protokolu pomalých dopytov, čo vám pomôže analyzovať prácu vašich projektov. V časti „mysqld“ pridajte:

slow_query_log = 1 # povoliť protokol pomalých dopytov long_query_time = 5 # nastaviť čas v sekundách slow_query_log_file = /var/log/slow-query.log # názov a cestu k súboru protokolu pomalých dopytov

Musíte tiež vytvoriť protokolové súbory pre MariaDB a pomalé chyby protokolovania dopytov:

klepnite na /var/log/mysql-error.log
klepnite na /var/log/slow-query.log

Vykonávame reštart služby:

systemctl restart mariadb

Protokol pomalých dopytov si môžete zobraziť otvorením súboru /var/log/slow-query.log alebo jeho kontrolou v reálnom čase:

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

Takto môžete analyzovať databázové otázky vášho projektu a na základe tohto auditu vykonať audit.

Po každej zmene nastavení databázy je potrebné skontrolovať chyby konfigurácie:

Uistite sa, že po všetkých prácach s nastavením databáz skontrolujte stav pomocou príkazu:

systemctl status mariadb -l

Základné príkazy pre prácu v konzole MariaDB

Nasledujú hlavné príkazy Cli, ktoré musí administrátor najčastejšie používať pri práci v konzole maridb.

Ak sa chcete prihlásiť do konzoly MariaDB lokálne, spustite:

mysql -u root -p

Vzdialené pripojenie k databázovému serveru MariaDB:

mysql -u root -p -h 10.1.1.20

Užitočné príkazy:

vytvoriť databázu db1; - vytvorte databázu s názvom db1

Zobraziť databázy; - zoznam vytvorených databáz

použitie db1; - zadajte databázu s názvom db1

zobraziť tabuľky; - zobraziť databázové tabuľky, v ktorých sa nachádzame

vytvoriť používateľa 'test' @ 'localhost' identifikovaný pomocou '123456'; - vytvoriť užívateľský test a nastaviť heslo 123456 (použite zložitejšie heslá)

udeliť všetky privilégiá na meno database_name. * na 'test' @ 'localhost'; - poskytnúť úplné práva na test používateľa

práva na splachovanie; - aktualizovať všetky oprávnenia

zobraziť zoznam procesov; - pozrite si aktívne pripojenia v databáze alebo môžete použiť príkaz:

zobraziť stav, kde 'premenná_príspevku' = 'Témy prepojené';

Z konzoly mysql môžete tiež prezerať alebo meniť parametre, napríklad:

ZOBRAZIŤ PREMENNÉ PODOBNÉ 'max_error_count';

zmeniť:

SET max_error_count = 256;

Na záver by som chcel povedať, že pri nastavovaní databázového servera sa musíte spoľahnúť na projekty, ktoré budú hostené na tomto serveri. To, čo platí pre malé projekty, nemusí byť pre veľký projekt vhodné. Vyskúšajte, experimentujte a najdôležitejšou vecou je vždy pozrieť sa do protokolov. V nasledujúcom článku ukážeme, ako zorganizovať vysokú dostupnosť a zvýšiť výkon aplikácií pomocou replikácie medzi servermi v systéme MariDB.