Wéi installéiere, sécher a Performance Tuning vum MariaDB Datebank Server


En Datebankserver ass e kritesche Bestanddeel vun der Netzwierkinfrastruktur déi néideg ass fir haut Uwendungen. Ouni d'Fäegkeet Daten ze späicheren, ze recuperéieren, ze aktualiséieren an ze läschen (wann néideg), gëtt d'Nëtzlechkeet an den Ëmfang vu Web- an Desktop-Apps ganz limitéiert.

Zousätzlech, ze wësse wéi een en Datebankserver installéiert, verwalten an konfiguréiert (sou datt et funktionnéiert wéi erwaart) ass eng wesentlech Fäegkeet déi all Systemadministrator muss hunn.

An dësem Artikel wäerte mir kuerz iwwerpréiwen wéi een e MariaDB Datebankserver installéiert a séchert an dann erkläre mir wéi et konfiguréiert gëtt.

Installéieren a Séchert e MariaDB Server

Am CentOS 7.x huet d'MariaDB MySQL ersat, wat nach ëmmer an der Ubuntu (zesumme mat MariaDB) fonnt gëtt. Datselwecht gëllt fir openSUSE.

Fir Kuerzegkeet benotze mir nëmmen MariaDB an dësem Tutorial, awer notéiert w.e.g. datt nieft verschidden Nimm an Entwécklungsphilosophien, béid Relational DataBase Management Systemer (RDBMSs fir kuerz) bal identesch sinn.

Dëst bedeit datt d'Client-Säit Kommandoen d'selwecht sinn op MySQL a MariaDB, an d'Konfiguratiounsdateien ginn benannt an op déiselwecht Plazen lokaliséiert.

Fir MariaDB z'installéieren, maacht:

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

Notéiert datt Dir an Ubuntu gefrot gëtt e Passwuert fir den RDBMS Root Benotzer anzeginn.

Wann déi uewe genannte Packagen installéiert sinn, gitt sécher datt den Datebankservice leeft an ageschalt gouf fir beim Boot unzefänken (an CentOS an openSUSE musst Dir dës Operatioun manuell ausféieren, wärend an Ubuntu den Installatiounsprozess scho gemaach huet. fir dech):

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

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

Fuert dann de mysql_secure_installation Skript. Dëse Prozess erlaabt Iech:

  1. Passwuert fir de RDBMS Root Benotzer setzen/zrécksetzen
  2. Anonyme Login ewechhuelen (also nëmme Benotzer mat engem gëltege Kont erméiglechen sech op d'RDBMS aloggen)
  3. deaktivéiert de Root-Zougang fir aner Maschinnen wéi localhost
  4. d'Testdatenbank erofhuelen (op déi jidderee kann zougoen)
  5. aktivéiert d'Ännerunge verbonne mat 1 bis 4.

Fir eng méi detailléiert Beschreiwung vun dësem Prozess, kënnt Dir op d'Post Installatioun Sektioun an Installéieren MariaDB Datebank an RHEL/CentOS/Fedora an Debian/Ubuntu.

MariaDB Server konfiguréieren

D'Standardkonfiguratiounsoptioune ginn aus de folgende Dateien an der bestëmmter Uerdnung gelies: /etc/mysql/my.cnf, /etc/my.cnf, an ~ /.my.cnf.

Meeschtens existéiert nëmmen /etc/my.cnf. Et ass op dëser Datei datt mir d'Serverbreet Astellunge setzen (déi mat de selwechten Astellungen an ~/.my.cnf fir all Benotzer iwwerschriwwe kënne ginn).

Déi éischt Saach, déi mir iwwer my.cnf musse bemierken, ass datt d'Astellunge a Kategorien (oder Gruppen) organiséiert sinn, wou all Kategoriennumm mat véiereckege Klammeren zougemaach ass.

Server System Konfiguratiounen ginn an der Rubrik [mysqld] uginn, wou Dir normalerweis nëmmen déi éischt zwou Astellungen an der Tabell hei drënner fannt. De Rescht sinn aner dacks benotzt Optiounen (wou uginn, wäerte mir de Standardwäert änneren mat engem personaliséierte vun eise Choixen):

Mir wäerten dëst änneren fir de Service ze instruéieren nëmmen op senger Haaptadress (192.168.0.13) ze lauschteren:

bind_address=192.168.0.13 bind_address=0.0.0.0 Port representéiert den Hafen wou den Datebankserver nolauschtert.

Mir ersetzen den Default-Wäert (3306) duerch 20500 (awer mir musse sécher sinn datt näischt anescht dësen Hafen benotzt):
port = 20500

Wärend e puer Leit streiden datt Sécherheet duerch Obskuritéit keng gutt Praxis ass, ass d'Ännerung vun de Standardapplikatiounsporte fir méi héich eng rudimentär -awer effektiv- Method fir Portsscannen ze decouragéieren. port=3306 innodb_buffer_pool_size ass de Pufferpool (a Bytes) vun der Erënnerung déi gëtt fir Daten an Indexen zougewisen, déi dacks zougänglech sinn wann Dir Innodb benotzt (wat de Standard an MariaDB ass) oder XtraDB als Späichermotor.

Mir ersetzen de Standardwäert duerch 256 MB:

innodb_buffer_pool_size=256M innodb_buffer_pool_size=134217728 skip_name_resolve weist op ob Hostnamen geléist ginn oder net op erakommende Verbindungen . Wann op 1 gesat, wéi mir an dësem Guide maachen, nëmmen IP Adressen.

Ausser Dir braucht Hostnumm fir Permissiounen ze bestëmmen, ass et unzeroden dës Variabel auszeschalten (fir d'Verbindungen an Ufroen ze beschleunegen) andeems Dir säi Wäert op 1 setzt:

skip_name_resolve=1 skip_name_resolve=0 query_cache_size representéiert d'Gréisst (a Bytes) verfügbar fir d'Ufro Cache op der Disk, wou d'Resultater vun SELECT Ufroe fir zukünfteg Benotzung gespäichert ginn wann eng identesch Ufro (an déiselwecht Datebank a benotzt deeselwechte Protokoll an deeselwechte Charakterset) ausgefouert gëtt.

Dir sollt eng Query Cache Gréisst wielen déi Äre Bedierfnesser entsprécht baséiert op 1) der Unzuel vun repetitive Ufroen, an 2) der geschätzter Unzuel vun records déi repetitive Ufroe ginn erwaart zréckzekommen. Mir setzen dëse Wäert fir de Moment op 100 MB:

query_cache_size=100M query_cache_size=0 (wat heescht datt se als Standard deaktivéiert ass) max_connections ass déi maximal Unzuel vu simultane Clientverbindungen zum Server . Mir setzen dëse Wäert op 30:
max_connections=30All Verbindung wäert e Fuedem benotzen, an domat Erënnerung verbrauchen. Huelt dës Tatsaach Rechnung wann Dir max_connections setzt. max_connections=151 thread_cache_size weist d'Zuel vun de Threads un, déi de Server fir d'Wiederbenotzen zouginn no engem Client trennt a befreit thread (en) virdrun am Gebrauch. An dëser Situatioun ass et méi bëlleg (Performance-schlau) e Fuedem ze benotzen wéi en neien ze instantiéieren.

Erëm, dëst hänkt vun der Unzuel u Verbindungen of, déi Dir erwaart. Mir kënnen dëse Wäert sécher op d'Halschent vun der Unzuel vu max_connections setzen:

thread_cache_size=15 thread_cache_size=0 (Standard behënnert) An CentOS musse mir SELinux soen fir MariaDB z'erméiglechen op engem net-Standard Hafen (20500) ze lauschteren ier Dir de Service nei starten:

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

Da starten de MariaDB Service nei.

Tuning MariaDB Leeschtung

Fir eis ze hëllefen d'Konfiguratioun no eise spezifesche Bedierfnesser z'iwwerpréiwen an ofzestëmmen, kënne mir mysqltuner installéieren (e Skript dat Virschléi gëtt fir d'Performance vun eisem Datebankserver ze verbesseren an seng Stabilitéit ze erhéijen):

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

Dann ännert de Verzeechnes an den Dossier extrahéiert vum Tarball (déi genau Versioun kann an Ärem Fall ënnerscheeden):

# cd major-MySQLTuner-perl-7dabf27

a lafen et (Dir wäert gefuerdert ginn d'Umeldungsinformatiounen vun Ärem administrativen MariaDB Kont anzeginn)

# ./mysqltuner.pl

D'Ausgab vum Skript ass u sech ganz interessant, awer loosst eis no ënnen sprangen, wou d'Variabelen fir unzepassen mat dem recommandéierte Wäert opgelëscht sinn:

D'Astellung query_cache_type weist op ob de Query-Cache deaktivéiert ass (0) oder aktivéiert (1). An dësem Fall beréit mysqltuner eis et auszeschalten.

Also firwat gi mir ugeroden et elo ze desaktivéieren? De Grond ass datt de Query Cache meeschtens nëtzlech ass an High-read/Low-Write Szenarien (wat net eise Fall ass, well mir just den Datebankserver installéiert hunn).

OPGEPASST: Ier Dir Ännerungen un der Konfiguratioun vun engem Produktiounsserver maacht, sidd Dir héich encouragéiert fir en Expert Datebank Administrateur ze konsultéieren fir sécherzestellen datt eng Empfehlung vum mysqltuner net negativ op eng existent Astellung beaflosst.

Resumé

An dësem Artikel hu mir erkläert wéi Dir e MariaDB Datebankserver konfiguréiert nodeems mir se installéiert a geséchert hunn. D'Konfiguratiounsvariablen, déi an der Tabell hei uewen opgezielt sinn, sinn nëmmen e puer Astellungen, déi Dir wëllt berécksiichtegen wann Dir de Server op d'Benotzung virbereet oder wann Dir se spéider ofstëmmt. Verweist ëmmer op déi offiziell MariaDB Dokumentatioun ier Dir Ännerungen maacht oder kuckt op eis MariaDB Performance Tuning Tipps:

Wéi ëmmer, zéckt net eis ze soen wann Dir Froen oder Kommentaren iwwer dësen Artikel hutt. Ginn et aner Serverastellungen déi Dir gär benotzt? Fillt Iech gratis mat dem Rescht vun der Gemeinschaft ze deelen andeems Dir de Kommentarformular hei drënner benotzt.