Databázový server je kritickou součástí síťové infrastruktury nezbytné pro dnešní aplikace. Bez možnosti ukládat, načítat, aktualizovat a mazat data (v případě potřeby) je užitečnost a rozsah webových a desktopových aplikací velmi omezený.
Kromě toho znalost, jak nainstalovat, spravovat a konfigurovat databázový server (tak, aby fungoval podle očekávání), je základní dovedností, kterou musí mít každý správce systému.
V tomto článku si stručně zopakujeme, jak nainstalovat a zabezpečit databázový server MariaDB a poté vysvětlíme, jak jej nakonfigurovat.
Instalace a zabezpečení serveru MariaDB
V CentOS 7.x , MariaDB nahradil MySQL, který stále lze nalézt v Ubuntu (spolu s MariaDB). Totéž platí pro openSUSE .
Pro stručnost budeme používat pouze MariaDB v tomto tutoriálu, ale mějte na paměti, že kromě toho, že oba systémy pro správu relačních databází mají různé názvy a filozofii vývoje, (RDBMS zkráceně) jsou téměř totožné.
To znamená, že příkazy na straně klienta jsou stejné na obou MySQL a MariaDB a konfigurační soubory jsou pojmenovány a umístěny na stejných místech.
Chcete-li nainstalovat MariaDB, postupujte takto:
--------------- 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
Všimněte si, že v Ubuntu , budete požádáni o zadání hesla pro uživatele root RDBMS.
Po instalaci výše uvedených balíčků se ujistěte, že je databázová služba spuštěna a byla aktivována pro spuštění při spouštění (v CentOS a openSUSE budete muset tuto operaci provést ručně, zatímco v Ubuntu instalační proces se o to již postará za vás):
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- # systemctl start mariadb && systemctl enable mariadb --------------- On openSUSE --------------- # systemctl start mysql && systemctl enable mysql
Poté spusťte mysql_secure_installation
skript. Tento proces vám umožní:
- nastavit/resetovat heslo pro uživatele root RDBMS
- odebrat anonymní přihlášení (a umožnit tak přihlášení do RDBMS pouze uživatelům s platným účtem)
- zakázat přístup root pro počítače jiné než localhost
- odebrat testovací databázi (ke které má kdokoli přístup)
- aktivujte změny související s 1 až 4.
Podrobnější popis tohoto procesu najdete v části Po instalaci v části Instalace databáze MariaDB v RHEL/CentOS/Fedora a Debian/Ubuntu.
Konfigurace serveru MariaDB
Výchozí možnosti konfigurace se čtou z následujících souborů v daném pořadí:/etc/mysql/my.cnf
, /etc/my.cnf
a ~/.my.cnf
.
Nejčastěji pouze /etc/my.cnf
existuje. Právě na tomto souboru nastavíme nastavení pro celý server (které lze přepsat pomocí stejných nastavení v ~/.my.cnf
pro každého uživatele).
První věc, kterou si musíme všimnout o my.cnf
spočívá v tom, že nastavení jsou uspořádána do kategorií (nebo skupin), kde je každý název kategorie uzavřen v hranatých závorkách.
Konfigurace systému serveru jsou uvedeny v [mysqld]
sekce, kde obvykle najdete pouze první dvě nastavení v tabulce níže. Zbytek jsou další často používané možnosti (tam, kde je uvedeno, změníme výchozí hodnotu na vlastní hodnotu podle našeho výběru):
Nastavení a popis | Výchozí hodnota |
datadir je adresář, kde jsou uloženy datové soubory. | datadir=/var/lib/mysql |
socket označuje název a umístění souboru soketu, který se používá pro připojení místních klientů. Mějte na paměti, že soubor soketu je prostředek, který se používá k předávání informací mezi aplikacemi. | socket=/var/lib/mysql/mysql.sock |
bind_address je adresa, na které bude databázový server naslouchat připojením TCP/IP. Pokud potřebujete, aby váš server naslouchal na více než jedné IP adrese, vynechejte toto nastavení (0.0.0.0, což znamená, že bude naslouchat na všech IP adresách přiřazených tomuto konkrétnímu hostiteli). Změníme to, abychom dali službě pokyn, aby naslouchala pouze na své hlavní adrese (192.168.0.13): bind_address=192.168.0.13 | bind_address=0.0.0.0 |
port představuje port, na kterém bude databázový server naslouchat.
Výchozí hodnotu (3306) nahradíme 20500 (ale musíme se ujistit, že tento port nepoužívá nic jiného): I když někteří lidé budou namítat, že zabezpečení pomocí nejasností není dobrou praxí, změna výchozích aplikačních portů za vyšší je základní – a přesto efektivní – metoda, jak odradit od skenování portů. | port=3306 |
innodb_buffer_pool_size je fond vyrovnávací paměti (v bajtech) paměti, která je alokována pro data a indexy, ke kterým se často přistupuje při používání Innodb (což je výchozí nastavení v MariaDB) nebo XtraDB jako úložiště. Výchozí hodnotu nahradíme 256 MB: innodb_buffer_pool_size=256M | innodb_buffer_pool_size=134217728 |
skip_name_resolve udává, zda budou či nebudou přeloženy názvy hostitelů u příchozích připojení. Pokud je nastaveno na 1, jak to uděláme v této příručce, pouze IP adresy. Pokud k určení oprávnění nevyžadujete názvy hostitelů, je vhodné tuto proměnnou zakázat (za účelem zrychlení připojení a dotazů) nastavením její hodnoty na 1: skip_name_resolve=1 | skip_name_resolve=0 |
query_cache_size představuje velikost (v bajtech), kterou má k dispozici mezipaměť dotazů na disku, kde se ukládají výsledky SELECT dotazů pro budoucí použití při identickém dotazu (na se provádí stejná databáze a používající stejný protokol a stejnou znakovou sadu). Měli byste zvolit velikost mezipaměti dotazů, která odpovídá vašim potřebám, na základě 1) počtu opakujících se dotazů a 2) přibližného počtu záznamů, které mají tyto opakované dotazy vrátit. Tuto hodnotu nastavíme prozatím na 100 MB: query_cache_size=100 M | query_cache_size=0 (což znamená, že je ve výchozím nastavení zakázáno) |
max_connections je maximální počet současných připojení klienta k serveru. Tuto hodnotu nastavíme na 30: max_connections=30Každé připojení bude používat vlákno, a tedy spotřebuje paměť. Vezměte tuto skutečnost v úvahu při nastavování max_connections. | max_connections=151 |
thread_cache_size označuje počet vláken, která server přidělí k opětovnému použití poté, co se klient odpojí a uvolní vlákna, která se dříve používala. V této situaci je levnější (z hlediska výkonu) znovu použít vlákno než vytvářet instanci nového. Opět to závisí na počtu připojení, které očekáváte. Tuto hodnotu můžeme bezpečně nastavit na polovinu počtu max_connections: thread_cache_size=15 | thread_cache_size=0 (ve výchozím nastavení zakázáno) |
V systému CentOS , budeme muset sdělit SELinuxu povolit MariaDB pro poslech na nestandardním portu (20500 ) před restartováním služby:
# yum install policycoreutils-python # semanage port -a -t mysqld_port_t -p tcp 20500
Poté restartujte službu MariaDB.
Ladění výkonu MariaDB
Abychom nám pomohli při kontrole a ladění konfigurace podle našich konkrétních potřeb, můžeme nainstalovat mysqltuner (skript, který poskytne návrhy na zlepšení výkonu našeho databázového serveru a zvýšení jeho stability):
# wget https://github.com/major/MySQLTuner-perl/tarball/master # tar xzf master
Poté změňte adresář do složky extrahované z tarballu (přesná verze se může ve vašem případě lišit):
# cd major-MySQLTuner-perl-7dabf27
a spusťte jej (budete vyzváni k zadání přihlašovacích údajů vašeho administrativního účtu MariaDB)
# ./mysqltuner.pl
Výstup skriptu je sám o sobě velmi zajímavý, ale přeskočme na konec, kde jsou proměnné, které je třeba upravit, uvedeny s doporučenou hodnotou:
query_cache_type
nastavení udává, zda je mezipaměť dotazů zakázána (0) nebo povoleno (1) . V tomto případě mysqltuner nám radí, abychom to deaktivovali.
Proč je tedy doporučeno jej deaktivovat nyní? Důvodem je, že mezipaměť dotazů je užitečná většinou ve scénářích s vysokým čtením/nízkým zápisem (což není náš případ, protože jsme právě nainstalovali databázový server).
UPOZORNĚNÍ :Před provedením změn v konfiguraci produkčního serveru se důrazně doporučuje konzultovat s odborníkem správce databáze, abyste se ujistili, že doporučení od mysqltuner nebude mít negativní dopad na stávající nastavení.
Shrnutí
V tomto článku jsme vysvětlili, jak nakonfigurovat databázový server MariaDB poté, co jsme jej nainstalovali a zabezpečili. Konfigurační proměnné uvedené v tabulce výše představují pouze několik málo nastavení, která byste měli zvážit při přípravě serveru k použití nebo při jeho pozdějším ladění. Před provedením změn si vždy přečtěte oficiální dokumentaci MariaDB nebo si přečtěte naše tipy pro ladění výkonu MariaDB:
Ne t Miss: 15 užitečných tipů pro ladění a optimalizaci výkonu MariaDB
Jako vždy nám neváhejte dát vědět, pokud máte nějaké dotazy nebo připomínky k tomuto článku. Chcete použít nějaká další nastavení serveru? Neváhejte a sdílejte se zbytkem komunity pomocí níže uvedeného formuláře pro komentáře.
Staňte se certifikovaným správcem systému Linux