Weboldal keresés

A MariaDB Database Server telepítése, biztonságossá tétele és teljesítményhangolása


Az adatbázis-kiszolgáló a mai alkalmazásokhoz szükséges hálózati infrastruktúra kritikus eleme. Az adatok tárolásának, lekérésének, frissítésének és törlésének képessége nélkül (ha szükséges), a webes és asztali alkalmazások hasznossága és hatóköre nagyon korlátozottá válik.

Ezenkívül az adatbázis-kiszolgáló telepítésének, kezelésének és konfigurálásának ismerete (hogy az elvárt módon működjön) alapvető készség, amellyel minden rendszergazdának rendelkeznie kell.

Ebben a cikkben röviden áttekintjük a MariaDB adatbázis-kiszolgáló telepítését és biztonságossá tételét, majd elmagyarázzuk, hogyan kell konfigurálni.

MariaDB szerver telepítése és biztonságossá tétele

A CentOS 7.x rendszerben a MariaDB felváltotta a MySQL-t, amely még mindig megtalálható az Ubuntuban (a MariaDB-vel együtt). Ugyanez igaz az openSUSE esetében is.

A rövidség kedvéért ebben az oktatóanyagban csak a MariaDB-t használjuk, de vegye figyelembe, hogy a különböző neveken és fejlesztési filozófiákon kívül mindkét Relációs adatbázis-kezelő rendszer (RDBMS) röviden) szinte azonosak.

Ez azt jelenti, hogy az ügyféloldali parancsok ugyanazok a MySQL és a MariaDB esetén, és a konfigurációs fájlok neve és helye ugyanazon a helyen található.

A MariaDB telepítéséhez tegye a következőket:

--------------- 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

Vegye figyelembe, hogy az Ubuntuban meg kell adnia az RDBMS root felhasználó jelszavát.

A fenti csomagok telepítése után győződjön meg arról, hogy az adatbázis-szolgáltatás fut, és aktiválva van a rendszerindításkor (CentOS és openSUSE esetén ezt a műveletet manuálisan kell végrehajtani , míg az Ubuntuban a telepítési folyamat már megoldotta ezt Ön helyett):

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
systemctl start mariadb && systemctl enable mariadb 

--------------- On openSUSE --------------- 
systemctl start mysql && systemctl enable mysql

Ezután futtassa a mysql_secure_installation parancsfájlt. Ez a folyamat lehetővé teszi, hogy:

  1. állítsa be/állítsa vissza az RDBMS root felhasználó jelszavát
  2. távolítsa el a névtelen bejelentkezéseket (így csak az érvényes fiókkal rendelkező felhasználók jelentkezzenek be az RDBMS-be)
  3. letiltja a root hozzáférést a localhosttól eltérő gépeken
  4. távolítsa el a tesztadatbázist (amelyhez bárki hozzáférhet)
  5. aktiválja az 1–4-hez kapcsolódó változtatásokat.

A folyamat részletesebb leírását a MariaDB Database telepítése RHEL/CentOS/Fedora és Debian/Ubuntu rendszerben című részében találja.

A MariaDB szerver konfigurálása

Az alapértelmezett konfigurációs beállítások a következő fájlokból kerülnek kiolvasásra a megadott sorrendben: /etc/mysql/my.cnf, /etc/my.cnf és ~ /.my.cnf.

Leggyakrabban csak a /etc/my.cnf létezik. Ezen a fájlon adjuk meg a szerverszintű beállításokat (amelyek felülbírálhatók ugyanazokkal a beállításokkal a ~/.my.cnf fájlban minden felhasználónál).

Az első dolog, amit meg kell jegyeznünk a my.cnf esetében, hogy a beállítások kategóriákba (vagy csoportokba) vannak rendezve, ahol minden kategórianév szögletes zárójelben van.

A szerverrendszer konfigurációi a [mysqld] részben találhatók, ahol általában csak az első két beállítást találja az alábbi táblázatban. A többi egyéb gyakran használt opció (ahol jelezzük, az alapértelmezett értéket megváltoztatjuk egy általunk választott egyedivel):

Setting and description

Alapértelmezett érték

datadir is the directory where the data files are stored.

datadir=/var/lib/mysql

socket indicates the name and location of the socket file that is used for local client connections. Keep in mind that a socket file is a resource that is utilized to pass information between applications.

socket=/var/lib/mysql/mysql.sock

bind_address is the address where the database server will listen on for TCP/IP connections. If you need your server to listen on more than one IP address, leave out this setting (0.0.0.0 which means it will listen on all IP addresses assigned to this specific host).

We will change this to instruct the service to listen only on its main address (192.168.0.13):

bind_address=192.168.0.13

bind_address=0.0.0.0

port represents the port where the database server will be listening.

We will replace the default value(3306) with 20500 (but we need to make sure nothing else is using that port):
port=20500

While some people will argue that security through obscurity is not good practice, changing the default application ports for higher ones is a rudimentary -yet effective- method to discourage port scans.

port=3306

innodb_buffer_pool_size is the buffer pool (in bytes) of memory that is allocated for data and indexes that are accessed frequently when using Innodb (which is the default in MariaDB) or XtraDB as storage engine.

We will replace the default value with 256 MB:

innodb_buffer_pool_size=256M

innodb_buffer_pool_size=134217728

skip_name_resolve indicates whether hostnames will be resolved or not on incoming connections. If set to 1, as we will do in this guide, only IP addresses.

Unless you require hostnames to determine permissions, it is advisable to disable this variable (in order to speed up connections and queries) by setting its value to 1:

skip_name_resolve=1

skip_name_resolve=0

query_cache_size represents the size (in bytes) available to the query cache in disk, where the results of SELECT queries are stored for future use when an identical query (to the same database and using the same protocol and same character set) is performed.

You should choose a query cache size that matches your needs based on 1) the number of repetitive queries, and 2) the approximate number of records those repetitive queries are expected to return. We will set this value to 100 MB for the time being:

query_cache_size=100M

query_cache_size=0 (ami azt jelenti, hogy alapértelmezés szerint le van tiltva)

max_connections is the maximum number of simultaneous client connections to the server. We will set this value to 30:
max_connections=30Each connection will use a thread, and thus will consume memory. Take this fact into account while setting max_connections.

max_connections=151

thread_cache_size indicates the numbers of threads that the server allocates for reuse after a client disconnects and frees thread(s) previously in use. In this situation, it is cheaper (performance-wise) to reuse a thread than instantiating a new one.

Again, this depends on the number of connections you are expecting. We can safely set this value to half the number of max_connections:

thread_cache_size=15

thread_cache_size=0 (alapértelmezés szerint le van tiltva)

A CentOS rendszerben meg kell mondanunk a SELinux-nak, hogy engedélyezze a MariaDB számára, hogy figyeljen egy nem szabványos porton (20500). ) a szolgáltatás újraindítása előtt:

yum install policycoreutils-python
semanage port -a -t mysqld_port_t -p tcp 20500

Ezután indítsa újra a MariaDB szolgáltatást.

A MariaDB teljesítmény hangolása

Annak érdekében, hogy segítsünk a konfiguráció ellenőrzésében és hangolásában sajátos igényeinknek megfelelően, telepíthetjük a mysqltuner programot (egy szkriptet, amely javaslatokat tesz adatbázisszerverünk teljesítményének javítására és stabilitásának növelésére):

wget https://github.com/major/MySQLTuner-perl/tarball/master
tar xzf master

Ezután módosítsa a könyvtárat a tarballból kinyert mappába (a pontos verzió az Ön esetében eltérő lehet):

cd major-MySQLTuner-perl-7dabf27

és futtassa (a rendszer megkéri a rendszergazdai MariaDB-fiók hitelesítő adatainak megadására)

./mysqltuner.pl

A szkript kimenete önmagában nagyon érdekes, de ugorjunk az aljára, ahol a módosítandó változók az ajánlott értékkel vannak felsorolva:

A query_cache_type beállítás jelzi, hogy a lekérdezés-gyorsítótár (0) vagy engedélyezve van-e (1). Ebben az esetben a mysqltuner azt tanácsolja, hogy tiltsuk le.

Miért tanácsoljuk tehát, hogy most deaktiváljuk? Ennek az az oka, hogy a lekérdezési gyorsítótár leginkább magas olvasási/alacsony írási forgatókönyveknél hasznos (ami nem az esetünkben van, mivel most telepítettük az adatbázis-kiszolgálót).

FIGYELMEZTETÉS: Mielőtt megváltoztatná az éles kiszolgáló konfigurációját, erősen javasoljuk, hogy konzultáljon egy szakértő adatbázis-adminisztrátorral, hogy a mysqltuner által adott javaslat ne legyen negatív hatással. meglévő beállításon.

Összegzés

Ebben a cikkben elmagyaráztuk, hogyan kell konfigurálni egy MariaDB adatbázis-kiszolgálót, miután telepítettük és biztonságossá tettük. A fenti táblázatban felsorolt konfigurációs változók csak néhány beállítás, amelyeket érdemes figyelembe venni a kiszolgáló használatra való előkészítése vagy későbbi hangolása során. A változtatások elvégzése előtt mindig olvassa el a hivatalos MariaDB dokumentációt, vagy olvassa el a MariaDB Performance tuning tippjeinket:

Ne hagyja ki: 15 hasznos MariaDB teljesítményhangolási és -optimalizálási tipp

Mint mindig, ne habozzon jelezni nekünk, ha bármilyen kérdése vagy megjegyzése van ezzel a cikkel kapcsolatban. Vannak más szerverbeállítások, amelyeket szívesen használ? Nyugodtan oszd meg a közösség többi tagjával az alábbi megjegyzés űrlap segítségével.