A MariaDB telepítése és alapvető optimalizálása a CentOS-on

Ebben a cikkben megvizsgálom a MariaDB adatbázis-kiszolgáló telepítésének, alapkonfigurációjának és optimalizálásának tulajdonságait. A feladatom a MariaDB telepítése és az alapkonfiguráció elvégzése volt a Linux CentOS 7 rendszeren. Mivel ez egy aktuális kérdés, remélem, hogy a cikk hasznos lesz az Ön számára. A cikk végén néhány példát mutatok a konfigurációs fájlokra, és ezek segítségével kiválaszthatják a szerver paramétereit.

Tartalom:

  • Telepítse a MariaDB-t a CentOS-ra
  • Védelem és biztonság MariaDB
  • A MariaDB szerverrel való kapcsolat ellenőrzése
  • A MariaDB konfigurációs fájljának beállítása
  • Teljesítmény optimalizálása és hangolása MariaDB
  • Alapvető parancsok a MariaDB konzolon történő munkához

Telepítse a MariaDB-t a CentOS-ra

Nemrégiben a MariaDB bekerült a CentOS 7 szokásos alap-tárházába, de ez az 5.5-es verziót tartalmazza. Ez a verzió már nem releváns, teljesítményproblémái vannak, és nincs teljes szöveges keresés az InnoDB-ben. Az írás idején a MariaDB jelenlegi verziója 10,4, tehát az ssh-n keresztül a Linux szerverünkhöz való kapcsolódással először összekapcsoljuk a mariadb.org fejlesztői tárolót, majd elkezdjük az adatbázis-kiszolgáló telepítését..

Szoktam fájlokkal dolgozni a nano szerkesztőn keresztül, telepíteni a yum segítségével:

yum install nano -y

És nyissa meg a tároló fájlt a szerkesztéshez:

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

És adja hozzá a következő információkat:

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

Mentse el a fájlt és futtassa a telepítést:

yum install MariaDB-szerver MariaDB-kliens -y

A telepítés befejeződött, most hozzá kell adnia a szolgáltatást az indításhoz és a futtatáshoz:

systemctl start mariadb
A systemctl lehetővé teszi a mariadb használatát

Ellenőrizze a szolgáltatás állapotát:

systemctl status mariadb

A Mariadb szolgáltatás működik és fut, így folytathatja a konfigurálást.

Védelem és biztonság MariaDB

A MariaDB telepítése és elindítása után folytathatjuk a biztonsági beállításokat. Futtassa a beépített szkriptet:

/ usr / bin / mysql_secure_installation

Ez a forgatókönyv részletesen leírja az egyes lépéseket, és nem fogunk mindegyiknél részletesebben foglalkozni. Először kérni fogja a root jelszót, de az első telepítés után nincs ott, ezért nyomja meg az enter billentyűt, és a következő lépésben állítson össze egy komplex jelszót (attól függ, hogy biztonságos lesz-e a szerver). Ezt követően nyomja meg az "Enter" gombot a szkript végrehajtásának végéig, névtelen felhasználók, a távoli root bejelentkezés, valamint a teszt táblák törlődnek, és a jogosultságok újratöltődnek..

A mariadb szerverhez való csatlakozáshoz szabályokat kell létrehoznia a Linux tűzfalon az iptable segítségével:

iptables -I INPUT -p tcp --dport 3306 -m állapot - állam ÚJ, LÉTREHOZOTT -j ELFOGADTA
iptables-save> / etc / sysconfig / iptables

Opcionálisan engedélyezheti a kimenő kapcsolatokat más MariaDB adatbázisokkal.

iptable -I KIMENET -p tcp --sport 3306 -m állapot - állam LÉTREHOZOTT -j ELFOGADT

A MariaDB szerverrel való kapcsolat ellenőrzése

Győződjön meg arról, hogy a MariaDB telepítése sikeres volt.

Csatlakozás az adatbázis-kiszolgálóhoz a beépített mysqladmin eszköz használatával:

mysqladmin verzió

A parancs eredménye lesz:

mysqladmin Ver 9.1 Distribution 10.4.7-MariaDB, for x86_64, Linux (c) 2000, 2018, Oracle, MariaDB Corporation Ab és mások. Szerver 10.4.7-MariaDB Protokoll verzió 10 Csatlakozás Localhost UNIX aljzaton keresztül UNIX foglalat /var/lib/mysql/mysql.sock Uptime: 11 perc 35 sec Szálak: 7 Kérdések: 26 Lassú lekérdezések: 0 Megnyitás: 20 Flush táblák: 1 Lap megnyitása

Ez azt jelenti, hogy a MariaDB telepítése sikeres volt, az adatbázis működik és fut..

Csatlakozhat a maridb szerver konzoljához az sql parancsok interaktív végrehajtásához:

mysql -u root -p

A MariaDB konfigurációs fájljának beállítása

Általában a MariaDB telepítése után hozzáadom a konfigurációs fájlt /etc/my.cnf szabványos konfigurációja, amely több kiszolgálón működik, és az adatbázisokkal eddig nem voltak problémák. Tisztítsa meg a my.cnf fájlt, és adja hozzá a következőket:

[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 # gyorsítótár paraméterek 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 # paraméterei ideiglenes táblák tmpdir = / tmp max_heap_table_size = 32M tmp_table_size = 32M # InnoDB paraméterek 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 tranzakció-izolálás = READ lekötött karakter set-server = utf8 egybevetés-server = utf8_unicode_ci init-connect = "SET NAMES utf8 LEVÁLOGAT utf8_unicode_ci" skip-name-elhatározás [mysqldump] gyors quote- nevek max_allowed_packet = 128M alapértelmezett karakterkészlet = utf8 [mysql] [isamchk] key_buffer = 16M [mysqld_safe] log-error = / var / log / mariadb / mariadb.log pid-file = / var / run / mariadb / mariadb. pid 

Az általános megértés érdekében a my.cnf konfigurációs fájl fő paramétereit elemezzük:

  • datadir - könyvtár az adatbázis fájlok tárolására;
  • tmpdir - könyvtár az ideiglenes fájlok tárolására;
  • Átugrani-name-elhatározás - letiltja a DNS-felbontást;
  • max_allowed_packet - maximális csomagméret. Ha az adatbázisban blob mezőket használnak, akkor az értéket legalább a legnagyobb mezőre kell állítani;
  • max_connections - a nyitott kapcsolatok maximális száma, ez a paraméter határozza meg, hogy hány ügyfél képes egyszerre dolgozni az adatbázis-kiszolgálóval;
  • rész # Gyorsítótár paraméterei - minden, ami a lekérdezés gyorsítótárához kapcsolódik; a túl magas értékek beállítása nem ajánlott, mivel az adatbázis-kiszolgáló erőforrás-felhasználása növekszik;
  • rész # InnoDB paraméterek - minden, ami az innodb táblázatokhoz kapcsolódik;
  • innodb_buffer_pool_size - cache puffer az adatokhoz és az indexekhez, ha 1-2 projekt található a szerveren, állítsa az értéket a rendelkezésre álló RAM 70-80% -ára;
  • innodb_flush_method - Linux esetén állítsa az O_DIRECT értéket, ez letiltja a gyorsítótárazást operációs rendszer szintjén;
  • innodb_flush_log_at_trx_commit - ez a paraméter befolyásolja az innoDB táblák írási sebességét. Vedd komolyan ezt a paramétert, ha az értéket 0-ra állítod, annál jobb teljesítmény érhető el, de az adatvesztés kockázata növekszik. Inkább 2-re állítom az értéket, mivel nem vettem észre az adatbázis-kiszolgáló munkájának jelentős növekedését, és a biztonság mindenekelőtt.

Teljesítmény optimalizálása és hangolása MariaDB

Szeretném hozzátenni, hogy nem kell kifejezetten a konfigurációs fájlra támaszkodnia, tanácsos minden szerverhez és minden projekthez kiválasztani a saját paramétereit. Javaslom szkriptek használatát a MariaDB konfigurációjának automatikus ellenőrzéséhez, amelyek végrehajtás után adnak néhány javaslatot a szerver optimalizálására.

Telepítse a szkriptet Tuning-Primer.sh:

yum install bc net-tools -y

Töltse le a szkriptet:

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

Jogokat adunk:

chmod + x tuning-primer.sh

Indítunk:

./tuning-primer.sh

A végrehajtás után a szkript minden olyan információt megad, amelyhez meg kell ismerkednie. A fontos pontok piros színűek lesznek, és mindenhol meg kell javítani..

Például a szkriptem azonnal kimutatta, hogy a használt kapcsolatok száma sokkal kevesebb, mint amit beállítottam:

Ez a paraméter megváltoztatható mind a my.cnf fájlban, mind a konzolon keresztül, 10-re csökkenttem, és a szkript dicsért:

Az ilyen manipulációk segítségével az adatbázis-kiszolgáló ideális működéséhez vezethet.

Szeretném megjegyezni, hogy az adatbázis-kiszolgáló ajánlott folyamatos működési ideje legalább 48 óra, akkor az információ pontosabb lesz, és ennek alapján hangolást kell végeznie..

A konfigurációs fájlhoz hozzáadhat egy szakaszt a lassú lekérdezések naplójának aktiválásához, ez segít a projektek munkájának elemzésében. A "mysqld" szakaszba tegye a következőt:

slow_query_log = 1 # engedélyezze a lassú lekérdezések naplóját long_query_time = 5 # állítsa be az időt másodpercben slow_query_log_file = /var/log/slow-query.log # név és a lassú lekérdezések naplófájljának elérési útja

Naplófájlokat kell létrehoznia a MariaDB és a lassú lekérdezési napló hibákhoz is:

érintse meg a /var/log/mysql-error.log fájlt
érintse meg a /var/log/slow-query.log elemet

Újraindítjuk a szolgáltatást:

A systemctl újraindítja a mariadb szoftvert

A lassú lekérdezések naplóját megtekintheti az /var/log/slow-query.log fájl megnyitásával vagy valós időben történő ellenőrzésével:

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

Így elemezheti a projekt adatbázis lekérdezéseit, és ennek alapján ellenőrzést végezhet.

Az adatbázis-beállítások bármilyen módosítása után ellenőriznie kell a konfiguráció hibáit:

Az adatbázisok beállításával kapcsolatos minden munka után ellenőrizze a hibák állapotát a parancs futtatásával:

systemctl status mariadb -l

Alapvető parancsok a MariaDB konzolon történő munkához

Az alábbiakban bemutatjuk azokat a főbb CLI-parancsokat, amelyeket a rendszergazdának leggyakrabban kell használni, amikor a maridb konzolon dolgozik.

A MariaDB konzolba történő helyi bejelentkezéshez futtassa:

mysql -u root -p

Távoli kapcsolat a MariaDB adatbázis-kiszolgálóval:

mysql -u root -p -h 10.1.1.20

Hasznos parancsok:

db1 adatbázis létrehozása; - hozzon létre egy adatbázist tartalmazó adatbázist

adatbázisok megjelenítése; - sorolja fel a létrehozott adatbázisokat

használja db1; - írja be az adatbázist a db1 névvel

Bemutató asztalok; - jelenítse meg azokat az adatbázis táblákat, amelyekben vagyunk

hozzon létre felhasználói tesztet, @ „localhost” -t, amelyet „123456” azonosít; - hozzon létre felhasználói tesztet és állítson be jelszót 123456 (bonyolultabb jelszavakat használjon)

adjon meg minden privilégiumot az adatbázis_névben. * a 'teszt' @ 'localhost' számára; - teljes jogokat adni a felhasználói teszthez

flush privilégiumok; - frissítse az összes jogosultságot

show processlist; - Lásd az aktív kapcsolatokat az adatbázisban, vagy használhatja a következő parancsot:

megmutatni az állapotot, ahol 'muutó_név' = 'szálak összekapcsolva';

Ezenkívül a mysql konzolon keresztül megnézheti vagy módosíthatja például a paramétereket:

MUTASD VÁLTOZÓKÉPT, HOGY 'max_error_count';

változik:

SET max_error_count = 256;

Összegzésül szeretném mondani, hogy az adatbázis-kiszolgáló beállításakor projektekre kell támaszkodnia, amelyeket ezen a szerveren tárolnak. Az, ami alapvetően a kis projektekre alkalmazható, lehet, hogy nem alkalmas nagy projektekre. Próbálkozzon, kísérletezzen, és a legfontosabb dolog mindig a naplókban keresni. A következő cikkben bemutatjuk, hogyan lehet megszervezni a magas rendelkezésre állást és növelni az alkalmazás teljesítményét a MariDB kiszolgálók közötti replikáció segítségével.