Kif Tinstalla, Sikura u Irfinar tal-Prestazzjoni ta' MariaDB Database Server


Server tad-database huwa komponent kritiku tal-infrastruttura tan-netwerk meħtieġa għall-applikazzjonijiet tal-lum. Mingħajr il-kapaċità li taħżen, tirkupra, taġġorna u tħassar id-dejta (meta meħtieġa), l-utilità u l-ambitu tal-applikazzjonijiet tal-web u tad-desktop isiru limitati ħafna.

Barra minn hekk, li tkun taf kif tinstalla, timmaniġġja u tikkonfigura server tad-database (sabiex topera kif mistenni) hija ħila essenzjali li kull amministratur tas-sistema jrid ikollu.

F'dan l-artikolu ser nirrevedu fil-qosor kif ninstallaw u niżguraw server tad-database MariaDB u mbagħad nispjegaw kif tikkonfigurah.

Installazzjoni u Żgurar ta' Server MariaDB

F'CentOS 7.x, MariaDB issostitwixxa MySQL, li għadu jista 'jinstab fl-Ubuntu (flimkien ma' MariaDB). L-istess jgħodd għal openSUSE.

Għall-qosor, aħna se nużaw biss MariaDB f'dan it-tutorja, iżda jekk jogħġbok innota li minbarra li għandna ismijiet u filosofiji ta 'żvilupp differenti, iż-żewġ Sistemi ta' Ġestjoni tad-DataBase Relazzjonali (RDBMSs fil-qosor) huma kważi identiċi.

Dan ifisser li l-kmandi min-naħa tal-klijent huma l-istess kemm fuq MySQL kif ukoll fuq MariaDB, u l-fajls tal-konfigurazzjoni huma msemmija u jinsabu fl-istess postijiet.

Biex tinstalla MariaDB, agħmel:

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

Innota li, f'Ubuntu, inti tintalab iddaħħal password għall-utent għerq RDBMS.

Ladarba l-pakketti ta 'hawn fuq ikunu ġew installati, kun żgur li s-servizz tad-database qed jaħdem u jkun ġie attivat biex jibda mill-boot (f'CentOS u openSUSE ser ikollok bżonn twettaq din l-operazzjoni manwalment, filwaqt li f'Ubuntu l-proċess ta' installazzjoni jkun diġà ħa ħsiebha). għalik):

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

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

Imbagħad mexxi l-iskrittura mysql_secure_installation. Dan il-proċess jippermettilek li:

  1. issettja/reset il-password għall-utent root RDBMS
  2. neħħi logins anonimi (b'hekk tippermetti lill-utenti b'kont validu biss jidħlu fl-RDBMS)
  3. itfi l-aċċess għall-għeruq għal magni minbarra localhost
  4. neħħi d-database tat-test (li kulħadd jista' jaċċessa)
  5. attiva l-bidliet assoċjati ma' 1 sa 4.

Għal deskrizzjoni aktar dettaljata ta 'dan il-proċess, tista' tirreferi għat-taqsima tal-installazzjoni ta 'Post f'Installa MariaDB Database f'RHEL/CentOS/Fedora u Debian/Ubuntu.

Konfigurazzjoni ta' MariaDB Server

L-għażliet tal-konfigurazzjoni default jinqraw mill-fajls li ġejjin fl-ordni mogħtija: /etc/mysql/my.cnf, /etc/my.cnf, u ~ /.my.cnf.

Ħafna drabi, teżisti biss /etc/my.cnf. Huwa fuq dan il-fajl li se nissettjaw is-settings madwar is-server (li jistgħu jiġu sostitwiti bl-istess settings f'~/.my.cnf għal kull utent).

L-ewwel ħaġa li rridu ninnotaw dwar my.cnf hija li s-settings huma organizzati f'kategoriji (jew gruppi) fejn kull isem ta' kategorija huwa magħluq b'parentesi kwadri.

Il-konfigurazzjonijiet tas-sistema tas-server huma mogħtija fit-taqsima [mysqld], fejn tipikament issib biss l-ewwel żewġ settings fit-tabella hawn taħt. Il-bqija huma għażliet oħra użati ta 'spiss (fejn indikat, aħna se nibdlu l-valur default b'waħda tad-dwana tal-għażla tagħna):

Se nibdlu dan biex nagħtu struzzjonijiet lis-servizz biex jisma' biss fuq l-indirizz prinċipali tiegħu (192.168.0.13):

bind_address=192.168.0.13 bind_address=0.0.0.0 port jirrappreżenta l-port fejn is-server tad-database se jkun qed jisma.

Aħna se nissostitwixxu l-valur default (3306) b'20500 (imma rridu niżguraw li xejn ieħor ma jkun qed juża dak il-port):
port=20500

Filwaqt li xi nies se jargumentaw li s-sigurtà permezz tal-oskur mhix prattika tajba, il-bdil tal-portijiet tal-applikazzjoni default għal dawk ogħla huwa metodu rudimentali - iżda effettiv - biex jiskoraġġixxi l-iskanijiet tal-port. port=3306 innodb_buffer_pool_size huwa l-buffer pool (f'bytes) tal-memorja li huwa allokat għal data u indiċi li huma aċċessati ta 'spiss meta tuża Innodb (li hija l-inadempjenza f'MariaDB) jew XtraDB bħala magna tal-ħażna.

Aħna se nissostitwixxu l-valur default b'256 MB:

innodb_buffer_pool_size=256M innodb_buffer_pool_size=134217728 skip_name_resolve jindika jekk l-ismijiet tal-hosts humiex se jiġu solvuti jew le fuq konnessjonijiet deħlin . Jekk issettjat għal 1, kif se nagħmlu f'din il-gwida, indirizzi IP biss.

Sakemm ma teħtieġx hostnames biex tiddetermina l-permessi, huwa rakkomandabbli li tiddiżattiva din il-varjabbli (sabiex tħaffef il-konnessjonijiet u l-mistoqsijiet) billi tistabbilixxi l-valur tagħha għal 1:

skip_name_resolve=1 skip_name_resolve=0 query_cache_size jirrappreżenta d-daqs (f'bytes) disponibbli għall-mistoqsija cache fid-disk, fejn ir-riżultati tal-mistoqsijiet SELECT huma maħżuna għal użu futur meta titwettaq mistoqsija identika (għall-istess database u bl-użu tal-istess protokoll u l-istess sett ta 'karattri).

Għandek tagħżel id-daqs tal-cache tal-mistoqsijiet li jaqbel mal-bżonnijiet tiegħek ibbażat fuq 1) in-numru ta' mistoqsijiet ripetittivi, u 2) in-numru approssimattiv ta' rekords li dawk il-mistoqsijiet ripetittivi huma mistennija li jirritornaw. Aħna se nissettjaw dan il-valur għal 100 MB għalissa:

query_cache_size=100M query_cache_size=0 (li jfisser li hija diżattivata b'mod awtomatiku) max_connections huwa n-numru massimu ta' konnessjonijiet simultanji tal-klijenti mas-server . Aħna se nissettjaw dan il-valur għal 30:
max_connections=30Kull konnessjoni se tuża ħajta, u għalhekk tikkonsma memorja. Ħu dan il-fatt f'kunsiderazzjoni waqt li tissettja max_connections. max_connections=151 thread_cache_size jindika n-numri ta' ħjut li s-server jalloka għall-użu mill-ġdid wara li klijent jiskonnettja u jeħles ħajt(i) li qabel kienu qed jintużaw. F'din is-sitwazzjoni, huwa orħos (bil-prestazzjoni) li terġa' tuża ħajta milli tistjanzja waħda ġdida.

Għal darb'oħra, dan jiddependi min-numru ta 'konnessjonijiet li qed tistenna. Nistgħu nissettjaw dan il-valur b'mod sikur għal nofs in-numru ta 'max_connections:

thread_cache_size=15 thread_cache_size=0 (diżattivat b'mod awtomatiku) F'CentOS, ikollna bżonn ngħidu lil SELinux biex tippermetti lil MariaDB tisma' fuq port mhux standard (20500) qabel ma nibdew mill-ġdid is-servizz:

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

Imbagħad erġa ibda s-servizz MariaDB.

Irfinar Prestazzjoni MariaDB

Biex tgħinna niċċekkjaw u nirfinaw il-konfigurazzjoni skont il-ħtiġijiet speċifiċi tagħna, nistgħu ninstallaw mysqltuner (kitba li tipprovdi suġġerimenti biex tittejjeb il-prestazzjoni tas-server tad-database tagħna u żżid l-istabbiltà tiegħu):

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

Imbagħad ibdel id-direttorju fil-folder estratt mit-tarball (il-verżjoni eżatta tista 'tvarja fil-każ tiegħek):

# cd major-MySQLTuner-perl-7dabf27

u mexxiha (inti se tintalab biex iddaħħal il-kredenzjali tal-kont amministrattiv MariaDB tiegħek)

# ./mysqltuner.pl

L-output tal-iskript fih innifsu huwa interessanti ħafna, iżda ejja naqbżu għall-qiegħ fejn il-varjabbli li għandhom jiġu aġġustati huma elenkati bil-valur rakkomandat:

L-issettjar query_cache_type jindika jekk il-query cache hijiex diżattivata (0) jew attivata (1). F'dan il-każ, mysqltuner qed jagħtina parir biex tiddiżattivaha.

Allura għaliex aħna avżati li tiddiżattivaha issa? Ir-raġuni hija li l-query cache hija utli l-aktar f'xenarji ta 'qari għoli/ta' kitba baxxa (li mhuwiex il-każ tagħna, peress li aħna biss installajna s-server tad-database).

TWISSIJA: Qabel ma tagħmel bidliet fil-konfigurazzjoni ta' server ta' produzzjoni, inti mħeġġeġ ħafna li tikkonsulta amministratur espert tad-database biex tiżgura li rakkomandazzjoni mogħtija minn mysqltuner ma tħallix impatt negattiv fuq setting eżistenti.

Sommarju

F'dan l-artikolu spjegajna kif tikkonfigura server tad-database MariaDB wara li nkunu stallajna u assigurajna. Il-varjabbli tal-konfigurazzjoni elenkati fit-tabella ta 'hawn fuq huma biss ftit settings li tista' tkun trid tikkunsidra waqt li tipprepara s-server għall-użu jew meta tirfina aktar tard. Dejjem irreferi għad-dokumentazzjoni uffiċjali ta' MariaDB qabel ma tagħmel bidliet jew irreferi għall-pariri tagħna dwar l-irfinar tal-Prestazzjoni ta' MariaDB:

Bħal dejjem, toqgħodx lura milli tgħarrafna jekk għandek xi mistoqsijiet jew kummenti dwar dan l-artikolu. Hemm xi settings oħra tas-server li tixtieq tuża? Ħossok liberu li taqsam mal-bqija tal-komunità billi tuża l-formola tal-kummenti hawn taħt.