MariaDB maglumat bazasynyň serwerini nädip gurmaly, ygtybarly we öndürijilik sazlamasy


Maglumat bazasy serweri, häzirki amaly programmalar üçin zerur bolan ulgam infrastrukturasynyň möhüm bölegi. Maglumatlary saklamak, almak, täzelemek we pozmak mümkinçiligi bolmasa (zerur bolanda) web we iş stoly programmalarynyň peýdalylygy we gerimi gaty çäkli bolýar.

Mundan başga-da, maglumatlar bazasynyň serwerini nädip gurmalydygyny, dolandyrmalydygyny we sazlamalydygyny bilmek (garaşylşy ýaly işleýär) her ulgam dolandyryjysynyň hökmany ussatlygydyr.

Bu makalada MariaDB maglumat bazasynyň serwerini nädip gurmalydygyny we howpsuzlygyny gysgaça gözden geçireris we soňra nädip sazlamalydygyny düşündireris.

MariaDB serwerini gurmak we goramak

CentOS 7.x-de MariDB Ubuntu-da (MariaDB bilen bilelikde) tapylyp bilinýän MySQL-iň ýerini aldy. OpenSUSE üçin hem edil şonuň ýaly.

Gysga wagtlyklyk üçin bu gollanmada diňe MariaDB ulanarys, ýöne dürli atlara we ösüş pelsepelerine eýe bolmakdan başga-da, Relational DataBase Dolandyryş Ulgamlary (gysgaça RDBMS) birmeňzeşdigini ýadyňyzdan çykarmaň.

Bu, müşderi tarapyndaky buýruklaryň MySQL we MariaDB-de birmeňzeşdigini we konfigurasiýa faýllarynyň adynyň we şol bir ýerde ýerleşýändigini aňladýar.

MariaDB gurmak üçin:

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

Ubuntu-da, RDBMS kök ulanyjysy üçin parol girizmegiňiz soralar.

Aboveokardaky paketler gurlansoň, maglumat bazasynyň hyzmatynyň işleýändigine we işe başlamak üçin işjeň bolandygyna göz ýetiriň (CentOS we openSUSE-de bu amaly el bilen ýerine ýetirmeli bolarsyňyz, Ubuntu-da bolsa gurnama prosesi eýýäm alada ederdi) siziň üçin):

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

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

Soňra mysql_secure_installation skriptini işlediň. Bu amal size mümkinçilik berer:

  1. RDBMS kök ulanyjysy üçin paroly belläň/täzeden düzüň
  2. anonim girişleri aýyryň (şeýlelik bilen diňe dogry hasaply ulanyjylara RDBMS-e girmäge mümkinçilik berýär)
  3. ýerlihostdan başga maşynlar üçin kök girişini öçüriň
  4. synag maglumatlar bazasyny aýyryň (her kim girip biler)
  5. 1 bilen 4 aralygyndaky üýtgeşmeleri işjeňleşdiriň.

Bu amalyň has jikme-jik düşündirilmegi üçin, RHEL/CentOS/Fedora we Debian/Ubuntu-da MariaDB maglumat bazasyny gurmak bölümindäki Post gurnama bölümine ýüz tutup bilersiňiz.

MariaDB serwerini sazlamak

Bellenen tertipdäki aşakdaky faýllardan deslapky konfigurasiýa opsiýalary okalýar: /etc/mysql/my.cnf , /etc/my.cnf we ~ /.my.cnf .

Köplenç diňe /etc/my.cnf bar. Hut şu faýlda serwer giňişligindäki sazlamalary belläris (her ulanyjy üçin ~/.my.cnf şol bir sazlamalar bilen ýok edilip bilner).

my.cnf hakda ilki bilen bellemeli zadymyz, sazlamalar kategoriýalara (ýa-da toparlara) bölünip, her kategoriýa ady kwadrat ýaý bilen gurşalan.

Serwer ulgamynyň konfigurasiýalary [mysqld] bölüminde berilýär, adatça aşakdaky tablisada diňe ilkinji iki sazlamany tapyp bilersiňiz. Galanlary ýygy-ýygydan ulanylýan beýleki görnüşlerdir (görkezilen ýerde, adaty bahany öz islegimiz bilen üýtgederis):

Hyzmaty diňe esasy salgysynda diňlemegi tabşyrmak üçin muny üýtgederis (192.168.0.13):

bind_address=192.168.0.13 bind_address=0.0.0.0 port maglumat bazasynyň serweriniň diňlän portuny aňladýar.

Bellenen bahany (3306) 20500 bilen çalyşarys (ýöne şol porty başga hiç zat ulanmaýandygyna göz ýetirmeli):
port=20500

Käbir adamlar düşnüksizlik arkaly howpsuzlygyň gowy tejribe däldigini öňe sürseler-de, has ýokary portlar üçin deslapky programma portlaryny üýtgetmek port skanerlerini pese gaçyrmak üçin başlangyç usuldyr. port=3306 innodb_buffer_pool_size ýadyň bufer howzy (baýtda). “Innodb” (MariaDB-de başlangyç) ýa-da “XtraDB” saklaýjy hereketlendiriji hökmünde ulanylanda ýygy-ýygydan girilýän maglumatlar we indeksler üçin bölünýär.

Bellenen bahany 256 MB bilen çalyşarys:

innodb_buffer_pool_size=256M innodb_buffer_pool_size=134217728 skip_name_resolve host atlarynyň gelýän baglanyşyklarda çözüljekdigini ýa-da ýokdugyny görkezýär . Bu gollanmada edişimiz ýaly 1-e düzülen bolsa, diňe IP adresleri.

Rugsatlary kesgitlemek üçin host atlaryny talap etmeseňiz, bu üýtgeýjini (baglanyşyklary we talaplary çaltlaşdyrmak üçin) bahasyny 1-e bellemek bilen öçürmek maslahat berilýär:

skip_name_resolve=1 skip_name_resolve=0 query_cache_size talapdaky ululygy (baýtda) görkezýär. birmeňzeş talap (şol bir maglumat bazasyna we şol bir protokoly we şol bir nyşan toplumyny ulanmak) ýerine ýetirilende SELECT talaplarynyň netijeleri geljekde ulanmak üçin saklanýan diskdäki keş.

1) gaýtalanýan talaplaryň sanyna we 2) şol gaýtalanýan talaplaryň yzyna gaýdyp gelmegine garaşylýan ýazgylaryň takmynan sanyna esaslanyp, islegleriňize laýyk gelýän keş keşini saýlamaly. Bu bahany häzirlikçe 100 MB belläris:

query_cache_size=100M query_cache_size=0 (bu deslapky ýagdaýda ýapykdygyny aňladýar) max_connections serwere bir wagtyň özünde müşderi birikmesiniň iň köp sanydyr. . Bu bahany 30:
belläris max_connections=30Her bir baglanyşyk sapak ulanar we şeýlelik bilen ýady ýitirer. Max_connections sazlaýarka bu hakykaty göz öňünde tutuň. max_connections=151 thread_cache_size serweriň gaýtadan ulanmak üçin bölýän sapaklarynyň sanyny görkezýär; bir müşderi öň ulanylýan sapaklary aýyrýar we boşadýar. Bu ýagdaýda bir sapagy täzeden açmakdan has arzan (öndürijilikli).

Againene-de, bu garaşýan baglanyşyklaryňyzyň sanyna baglydyr. Bu bahany max_connections sanynyň ýarysyna arkaýyn belläp bileris:

thread_cache_size=15 thread_cache_size=0 (deslapky görnüşde ýapyk) CentOS-da, SELinux-a, MariDB-e hyzmaty täzeden başlamazdan ozal standart däl portda (20500) diňlemegine rugsat bermelidiris:

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

Soňra MariaDB hyzmatyny täzeden açyň.

MariaDB öndürijiligini düzmek

Aýratyn zerurlyklarymyza görä konfigurasiýany barlamakda we düzmekde bize kömek etmek üçin mysqltuner (maglumatlar bazamyzyň serweriniň işleýşini gowulandyrmak we durnuklylygyny ýokarlandyrmak üçin teklipler berýän skript) gurup bileris:

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

Soňra bukjany tarboldan alnan bukja üýtgediň (takyk wersiýasy siziň ýagdaýyňyzda tapawutlanyp biler):

# cd major-MySQLTuner-perl-7dabf27

we işlediň (administratiw MariaDB hasabyňyzyň şahsyýet maglumatlaryny girizmegiňiz soralar)

# ./mysqltuner.pl

Scriptazuwyň çykyşynyň özi gaty gyzykly, ýöne geliň, sazlamak üçin üýtgeýänleriň maslahat berilýän baha bilen görkezilen aşagyna geçeliň:

query_cache_type sazlamasy, gözleg keşiniň ýapykdygyny ýa-da açykdygyny (1) görkezýär. Bu ýagdaýda mysqltuner, ony öçürmegi maslahat berýär.

Onda näme üçin indi ony ýapmak maslahat berilýär? Munuň sebäbi, gözleg keşiniň esasan ýokary okalýan/pes ýazylan ssenariýalarda peýdaly bolmagydyr (bu biziň üçin däl, sebäbi maglumatlar bazasynyň serwerini ýaňy gurduk).

DUNDURYŞ: Önümçilik serweriniň konfigurasiýasyna üýtgeşmeler girizmezden ozal, mysqltuner tarapyndan berlen maslahatyň bar bolan sazlamalara ýaramaz täsir etmezligi üçin hünärmen maglumatlar bazasynyň dolandyryjysy bilen maslahatlaşmagyňyz maslahat berilýär.

Gysgaça mazmun

Bu makalada, MariaDB maglumat bazasynyň serwerini guranymyzdan we üpjün edenimizden soň nädip sazlamalydygyny düşündirdik. Aboveokardaky tablisada görkezilen konfigurasiýa üýtgeýjileri, serweri ulanmaga taýýarlanyňyzda ýa-da soňrak sazlanyňyzda göz öňünde tutup boljak birnäçe sazlamalardyr. Üýtgeşmeler girizmezden ozal elmydama resmi MariaDB resminamalaryna ýüz tutuň ýa-da MariaDB öndürijilik sazlaýyş maslahatlarymyza serediň:

Hemişe bolşy ýaly, bu makala barada soraglaryňyz ýa-da teswirleriňiz bar bolsa bize habar bermekden çekinmäň. Ulanmak isleýän başga serwer sazlamalaryňyz barmy? Aşakdaky düşündiriş formuny ulanyp, jemgyýetiň galan bölekleri bilen paýlaşyp bilersiňiz.