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.