Kā instalēt, aizsargāt un veiktspējas MariaDB datu bāzes serveri


Datu bāzes serveris ir būtiska tīkla infrastruktūras sastāvdaļa, kas nepieciešama mūsdienu lietojumprogrammām. Bez iespējas saglabāt, izgūt, atjaunināt un dzēst datus (kad nepieciešams), tīmekļa un darbvirsmas lietotņu lietderība un darbības joma kļūst ļoti ierobežota.

Turklāt zināšanas par to, kā instalēt, pārvaldīt un konfigurēt datu bāzes serveri (tā, lai tas darbotos, kā paredzēts), ir būtiska prasme, kas jāapgūst katram sistēmas administratoram.

Šajā rakstā mēs īsi pārskatīsim, kā instalēt un aizsargāt MariaDB datu bāzes serveri, un pēc tam mēs izskaidrosim, kā to konfigurēt.

MariaDB servera instalēšana un drošība

CentOS 7.x versijā MariaDB aizstāja MySQL, kas joprojām ir atrodama Ubuntu (kopā ar MariaDB). Tas pats attiecas arī uz openSUSE.

Īsāk sakot, šajā apmācībā mēs izmantosim tikai MariaDB, taču, lūdzu, ņemiet vērā, ka abām Relāciju datu bāzes pārvaldības sistēmām (saīsināti RDBMS) ir atšķirīgi nosaukumi un attīstības filozofija.

Tas nozīmē, ka klienta puses komandas ir vienādas gan MySQL, gan MariaDB, un konfigurācijas faili tiek nosaukti un atrodas tajās pašās vietās.

Lai instalētu MariaDB, rīkojieties šādi:

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

Ņemiet vērā, ka Ubuntu jums tiks lūgts ievadīt paroli RDBMS saknes lietotājam.

Kad iepriekš minētās pakotnes ir instalētas, pārliecinieties, vai datu bāzes pakalpojums darbojas un ir aktivizēts, lai sāktu sāknēšanu (CentOS un openSUSE jums šī darbība būs jāveic manuāli, savukārt Ubuntu instalēšanas process jau būs par to parūpējies. tev):

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

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

Pēc tam palaidiet skriptu mysql_secure_installation . Šis process ļaus jums:

  1. iestatiet/atiestatiet paroli RDBMS saknes lietotājam
  2. noņemiet anonīmus pieteikšanās datus (tādējādi ļaujot RDBMS pieteikties tikai lietotājiem ar derīgu kontu)
  3. atspējojiet root piekļuvi mašīnām, kas nav localhost
  4. noņemiet testa datu bāzi (kurai ikviens var piekļūt)
  5. aktivizēt izmaiņas, kas saistītas ar 1. līdz 4.

Lai iegūtu detalizētāku šī procesa aprakstu, skatiet sadaļu Post instalēšana sadaļā MariaDB Database instalēšana RHEL/CentOS/Fedora un Debian/Ubuntu.

MariaDB servera konfigurēšana

Noklusējuma konfigurācijas opcijas tiek nolasītas no šādiem failiem norādītajā secībā: /etc/mysql/my.cnf , /etc/my.cnf un ~ /.my.cnf .

Visbiežāk pastāv tikai /etc/my.cnf . Šajā failā mēs iestatīsim servera mēroga iestatījumus (kurus katram lietotājam var atcelt ar vieniem un tiem pašiem iestatījumiem sadaļā ~/.my.cnf ).

Pirmā lieta, kas mums jāņem vērā par my.cnf , ir tā, ka iestatījumi ir sakārtoti kategorijās (vai grupās), kur katrs kategorijas nosaukums ir pievienots kvadrātiekavās.

Servera sistēmas konfigurācijas ir norādītas sadaļā [mysqld] , kur parasti zemāk esošajā tabulā atradīsit tikai pirmos divus iestatījumus. Pārējās ir citas bieži izmantotās opcijas (ja norādīts, noklusējuma vērtību mainīsim ar pielāgotu, kādu izvēlamies):

Mēs to mainīsim, lai norādītu dienestam klausīties tikai tā galveno adresi (192.168.0.13):

iesiešanas_adrese = 192.168.0.13 bind_address = 0.0.0.0 ports apzīmē portu, kurā datu bāzes serveris klausīsies.

Noklusējuma vērtību (3306) aizstāsim ar 20500 (bet mums jāpārliecinās, ka nekas cits neizmanto šo portu):
osta = 20500

Kaut arī daži cilvēki apgalvos, ka neskaidra drošība nav laba prakse, noklusējuma lietojumprogrammu pieslēgvietu maiņa pret augstākām ir elementāra - tomēr efektīva - metode, kas kavē ostu skenēšanu. port = 3306 innodb_buffer_pool_size ir atmiņas buferis (baitos), kas tiek piešķirts datiem un rādītājiem, kuriem bieži piekļūst, izmantojot Innodb (kas ir noklusējums pakalpojumā MariaDB). vai XtraDB kā uzglabāšanas dzinēju.

Noklusējuma vērtība tiks aizstāta ar 256 MB:

innodb_buffer_pool_size = 256M innodb_buffer_pool_size = 134217728 skip_name_resolve norāda, vai ienākošajos savienojumos resursdatoru nosaukumi tiks atrisināti. Ja iestatāt uz 1, kā mēs darīsim šajā rokasgrāmatā, tikai IP adreses.

Ja vien atļauju noteikšanai nav nepieciešami resursdatoru nosaukumi, ieteicams šo mainīgo atspējot (lai paātrinātu savienojumus un vaicājumus), iestatot tā vērtību 1:

izlaist_nosaukums_atrisināt = 1 izlaist_nosaukuma_resolve = 0 query_cache_size apzīmē izmēru (baitos), kas pieejams vaicājuma kešatmiņā diskā, kur SELECT vaicājumu rezultāti tiek saglabāti turpmākai izmantošanai, kad identisks vaicājums (uz tiek izmantota tā pati datu bāze, izmantojot to pašu protokolu un to pašu rakstzīmju kopu).

Jums jāizvēlas vaicājuma kešatmiņas lielums, kas atbilst jūsu vajadzībām, pamatojoties uz 1) atkārtotu vaicājumu skaitu un 2) aptuveno ierakstu skaitu, kuru sagaidāms, ka šie atkārtotie vaicājumi atgriezīsies. Pagaidām šī vērtība tiks iestatīta uz 100 MB:

query_cache_size = 100M query_cache_size = 0 (tas nozīmē, ka pēc noklusējuma tas ir atspējots) max_connections ir maksimālais vienlaicīgo klienta savienojumu ar serveri skaits. Mēs iestatīsim šo vērtību uz 30:
max_connections = 30 Katrs savienojums izmantos pavedienu un tādējādi patērēs atmiņu. Iestatot max_connections, ņemiet vērā šo faktu. max_connections = 151 thread_cache_size norāda pavedienu skaitu, ko serveris piešķir atkārtotai izmantošanai pēc tam, kad klients atvieno un atbrīvo iepriekš izmantoto (-os) pavedienu (-us). Šajā situācijā ir izdevīgāk (veiktspējas ziņā) atkārtoti izmantot pavedienu, nekā atjaunot jaunu.

Tas atkal ir atkarīgs no gaidāmo savienojumu skaita. Mēs varam droši iestatīt šo vērtību uz pusi no max_connections skaita:

thread_cache_size = 15 thread_cache_size = 0 (pēc noklusējuma ir atspējots) CentOS mums būs jāpasaka SELinux, lai MariaDB varētu klausīties nestandarta portā (20500) pirms pakalpojuma restartēšanas:

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

Pēc tam restartējiet pakalpojumu MariaDB.

MariaDB veiktspējas noskaņošana

Lai palīdzētu mums pārbaudīt un pielāgot konfigurāciju atbilstoši mūsu īpašajām vajadzībām, mēs varam instalēt mysqltuner (skriptu, kas sniegs ieteikumus, lai uzlabotu mūsu datu bāzes servera veiktspēju un palielinātu tā stabilitāti):

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

Pēc tam nomainiet direktoriju mapē, kas iegūta no tarball (precīza versija jūsu gadījumā var atšķirties):

# cd major-MySQLTuner-perl-7dabf27

un palaidiet to (jums tiks piedāvāts ievadīt administratīvā MariaDB konta akreditācijas datus)

# ./mysqltuner.pl

Skripta izvade pati par sevi ir ļoti interesanta, taču pārejam uz leju, kur maināmie maināmie ir norādīti ar ieteicamo vērtību:

Iestatījums query_cache_type norāda, vai vaicājuma kešatmiņa ir atspējota (0) vai iespējota (1). Šajā gadījumā mysqltuner iesaka mums to atspējot.

Tātad, kāpēc mums ieteicams to tagad deaktivizēt? Iemesls ir tāds, ka vaicājumu kešatmiņa galvenokārt ir noderīga scenārijos ar augstu lasīšanas/maz rakstīšanas līmeni (kas nav mūsu gadījums, jo mēs tikko instalējām datu bāzes serveri).

BRĪDINĀJUMS: Pirms izmaiņu veikšanas ražošanas servera konfigurācijā, ieteicams konsultēties ar ekspertu datu bāzes administratoru, lai pārliecinātos, ka mysqltuner ieteikums negatīvi neietekmēs esošo iestatījumu.

Kopsavilkums

Šajā rakstā mēs esam paskaidrojuši, kā konfigurēt MariaDB datu bāzes serveri pēc tā instalēšanas un nodrošināšanas. Iepriekš tabulā uzskaitītie konfigurācijas mainīgie ir tikai daži iestatījumi, kurus ieteicams apsvērt, sagatavojot serveri lietošanai vai noregulējot to vēlāk. Pirms izmaiņu veikšanas vienmēr skatiet oficiālo MariaDB dokumentāciju vai skatiet mūsu MariaDB Performance pielāgošanas padomus:

Kā vienmēr, nekavējoties informējiet mūs, ja jums ir kādi jautājumi vai komentāri par šo rakstu. Vai ir kādi citi servera iestatījumi, kurus vēlaties izmantot? Jūtieties brīvi dalīties ar pārējo kopienu, izmantojot zemāk esošo komentāru veidlapu.