V tomto článku se budu zabývat funkcemi instalace, základní konfigurace a optimalizace databázového serveru MariaDB. Mým úkolem bylo nainstalovat MariaDB a provést základní konfiguraci v systému Linux CentOS 7. Protože se jedná o aktuální problém, doufám, že tento článek bude pro vás užitečný. Na konci článku uvedu několik příkladů konfiguračních souborů a můžete je použít k výběru parametrů pro váš server.
Obsah:
- Nainstalujte si MariaDB na CentOS
- Ochrana a bezpečnost MariaDB
- Kontrola připojení k serveru MariaDB
- Nastavení konfiguračního souboru MariaDB
- Optimalizace výkonu a vyladění MariaDB
- Základní příkazy pro práci v konzole MariaDB
Nainstalujte si MariaDB na CentOS
Nedávno je MariaDB součástí standardního základního úložiště pro CentOS 7, ale toto úložiště obsahuje verzi 5.5. Tato verze již není relevantní, má problémy s výkonem a v InnoDB neexistuje fulltextové vyhledávání. V době psaní je současná verze MariaDB 10,4, takže připojením k našemu Linuxovému serveru pomocí ssh nejprve připojíme úložiště vývojářů mariadb.org a začneme instalovat databázový server.
Jsem zvyklý pracovat se soubory pomocí editoru nano, nainstalovat jej pomocí yum:
yum install nano -y
A otevřete soubor úložiště pro úpravy:
nano /etc/yum.repos.d/mariadb.repo
Zde přidejte následující informace:
[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 soubor a spusťte instalaci:
yum install MariaDB-server MariaDB-client -y
Instalace je dokončena, nyní musíte přidat službu ke spuštění a spuštění:
systemctl start mariadb
systemctl povolit mariadb
Zkontrolujte stav služby:
systemctl status mariadb
Služba Mariadb je spuštěna, takže můžete pokračovat v konfiguraci.
Ochrana a bezpečnost MariaDB
Po instalaci a spuštění MariaDB můžeme přistoupit k nastavení zabezpečení. Spusťte vestavěný skript:
/ usr / bin / mysql_secure_installation
Tento scénář popisuje každý krok podrobně a nebudeme se podrobněji zabývat každým z nich. Nejprve si vyžádá heslo root, ale po počáteční instalaci tam není, a proto stiskneme enter a v další fázi nastavíme složité heslo (záleží na tom, jak bezpečný bude váš server). Poté můžete stisknout klávesu „enter“ až do konce spuštění skriptu, anonymní uživatelé, vzdálené přihlášení root a testovací tabulky budou smazány a oprávnění budou znovu načtena.
Chcete-li se připojit k serveru mariadb, musíte si vytvořit pravidla v bráně Linux pomocí iptables:
iptables -I INPUT -p tcp --port 3306 -m state - state NEW, ESTABLISHED -j ACCEPT
iptables-save> / etc / sysconfig / iptables
Volitelně můžete povolit odchozí připojení k jiným databázím MariaDB.
iptables -I OUTPUT -p tcp - sport 3306 -m state - state ESTABLISHED -j ACCEPT
Kontrola připojení k serveru MariaDB
Ujistěte se, že instalace MariaDB byla úspěšná.
Připojte se k databázovému serveru pomocí vestavěného nástroje mysqladmin:
verze mysqladmin
Příkaz přinese výsledek:
mysqladmin Ver 9.1 Distribuován 10.4.7-MariaDB, pro Linux na x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab a další. Verze serveru 10.4.7-MariaDB Protokol verze 10 Připojení Localhost přes soket UNIX Zásuvka UNIX /var/lib/mysql/mysql.sock Uptime: 11 min 35 sec Vlákna: 7 Otázky: 26 Pomalé dotazy: 0 Otevírá: 20 Splachovací tabulky: 1 Otevřete kartu
To znamená, že instalace MariaDB byla úspěšná, databáze je funkční..
Můžete se připojit ke konzole serveru maridb a interaktivně provádět příkazy sql:
mysql -u root -p
Nastavení konfiguračního souboru MariaDB
Obvykle po instalaci MariaDB přidám do konfiguračního souboru /etc/my.cnf jeho standardní konfigurace, která funguje na více serverech a dosud nebyly problémy s databázemi. Vyčistěte my.cnf a přidejte do něj následující položky:
[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 parametry 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 # parametry pro dočasné tabulky TMPDIR = / tmp max_heap_table_size = 32M tmp_table_size = 32M # InnoDB parametry 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 transakce-izolace = READ-COMMITTED character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = "SET NAMES utf8cry_crycccpt_ptrycc_ptryptcpt_ptrycc_ptryptcpt_ptryptcpt_ptrycc_ptryptcpt jména 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
Obecně budeme analyzovat hlavní parametry konfiguračního souboru my.cnf:
- datadir - adresář pro ukládání databázových souborů;
- tmpdir - adresář pro ukládání dočasných souborů;
- skip-name-resolution - zakáže rozlišení DNS;
- max_allowed_packet - maximální velikost paketu. Pokud jsou v databázi použita pole blob, musíte nastavit hodnotu alespoň na největší pole;
- max_connections - maximální počet otevřených připojení, parametr určuje, kolik klientů může pracovat s databázovým serverem současně;
- Sekce # Parametry mezipaměti - vše související s mezipamětí dotazů; příliš vysoké hodnoty nastavení se nedoporučují, protože se bude zvyšovat spotřeba prostředků databázovým serverem;
- Sekce # InnoDB parametry - vše související s tabulkami innodb;
- innodb_buffer_pool_size - vyrovnávací paměť pro data a indexy, jsou-li na serveru umístěny 1–2 projekty, nastavte hodnotu na 70–80% dostupné paměti RAM;
- innodb_flush_method - pro Linux nastavte hodnotu na O_DIRECT, tím zakážete ukládání do mezipaměti na úrovni OS;
- innodb_flush_log_at_trx_commit - tento parametr ovlivňuje rychlost zápisu tabulek innoDB. Berte tento parametr vážně, nastavením hodnoty na 0 získáte vyšší výkon, ale riziko ztráty dat se zvyšuje. Raději nastavím hodnotu 2, protože jsem si nevšiml velkého nárůstu práce databázového serveru a bezpečnost je především.
Optimalizace výkonu a vyladění MariaDB
Chci dodat, že se nemusíte spoléhat konkrétně na můj konfigurační soubor, je vhodné vybrat vlastní parametry pro každý server a pro každý projekt. Doporučuji používat skripty k automatické kontrole konfigurace MariaDB, která po spuštění poskytuje některá doporučení pro optimalizaci serveru.
Nainstalujte skript Tuning-Primer.sh:
yum install bc net-tools -y
Stáhněte si skript:
wget https://launchpadlibrarian.net/78745738/tuning-primer.sh
Dáváme práva:
chmod + x tuning-primer.sh
Spouštíme:
./tuning-primer.sh
Po spuštění vám skript poskytne všechny informace, které potřebujete k seznámení. Důležité body budou zvýrazněny červeně a budete je muset opravit, kdykoli je to možné..
Například můj skript okamžitě ukázal, že počet použitých připojení je mnohem menší než to, co jsem nastavil:
Tento parametr lze změnit, a to jak v souboru my.cnf, tak prostřednictvím konzoly, snížil jsem jej na 10 a skript mě ocenil:
Pomocí těchto manipulací můžete vést k ideálnímu fungování databázového serveru.
Chci poznamenat, že doporučená nepřetržitá provozní doba databázového serveru je alespoň 48 hodin, pak budou informace přesnější a na základě toho budete muset provést ladění.
Do mého konfiguračního souboru můžete přidat sekci pro aktivaci protokolu pomalých dotazů, což vám pomůže analyzovat práci vašich projektů. V sekci „mysqld“ přidejte:
slow_query_log = 1 # povolit protokol pomalých dotazů long_query_time = 5 # nastavit čas v sekundách slow_query_log_file = /var/log/slow-query.log # jméno a cestu k souboru protokolu pomalých dotazů
Musíte také vytvořit soubory protokolu pro MariaDB a pomalé chyby protokolu dotazů:
dotkněte se /var/log/mysql-error.log
dotkněte se /var/log/slow-query.log
Provádíme restart služby:
systemctl restart mariadb
Protokol pomalých dotazů si můžete prohlédnout otevřením souboru /var/log/slow-query.log nebo kontrolou v reálném čase:
tail -f /var/log/slow-query.log
Můžete tak analyzovat databázové dotazy vašeho projektu a na základě tohoto provedení provést audit.
Po všech změnách nastavení databáze je třeba zkontrolovat konfiguraci, zda neobsahují chyby:
Ujistěte se, že po veškeré práci s nastavením databází zkontrolujte spuštěním příkazu stav:
systemctl status mariadb -l
Základní příkazy pro práci v konzole MariaDB
Níže jsou uvedeny hlavní příkazy Cli, které musí správce při práci v konzoli maridb nejčastěji používat.
Chcete-li se přihlásit k místní konzoli MariaDB, spusťte:
mysql -u root -p
Vzdálené připojení k databázovému serveru MariaDB:
mysql -u root -p -h 10.1.1.20
Užitečné příkazy:
vytvořit databázi db1;
- vytvořit databázi s názvem db1
ukázat databáze;
- seznam vytvořených databází
použijte db1;
- zadejte databázi s názvem db1
ukázat tabulky;
- zobrazit databázové tabulky, ve kterých jsme
vytvořit uživatele 'test' @ 'localhost' identifikovaný '123456';
- vytvořit uživatelský test a nastavit heslo 123456 (použijte složitější hesla)
udělit všechna oprávnění na jméno_databáze. * * 'test' @ 'localhost';
- udělit plná práva na test uživatele
oprávnění pro vyprázdnění;
- aktualizovat všechna oprávnění
zobrazit seznam procesů;
- zobrazit aktivní připojení v databázi nebo můžete použít příkaz:
zobrazit stav, kde 'variabilní_jméno' = 'Threads_connected';
Z konzoly mysql můžete také prohlížet nebo měnit parametry, například:
ZOBRAZIT PRŮMĚNY JAKO 'max_error_count';
Upravit:
SET max_error_count = 256;
Na závěr bych rád řekl, že při nastavování databázového serveru se musíte spolehnout na projekty, které budou hostovány na tomto serveru. To, co je použitelné pro malé projekty, nemusí být pro velký projekt vhodné. Zkuste, experimentujte a nejdůležitější věcí je vždy se podívat do protokolů. V dalším článku si ukážeme, jak zorganizovat vysokou dostupnost a zvýšit výkon aplikací pomocí replikace mezi servery v MariDB.