Giunsa ang Pag-install, Pagsiguro ug Pag-tune sa Pagganap sa MariaDB Database Server


Ang database server usa ka kritikal nga bahin sa imprastraktura sa network nga gikinahanglan alang sa mga aplikasyon karon. Kung wala ang abilidad sa pagtipig, pagbawi, pag-update, ug pagtangtang sa mga datos (kung gikinahanglan), ang kapuslan ug kasangkaran sa web ug desktop nga mga app mahimong limitado kaayo.

Dugang pa, ang pagkahibalo kung unsaon pag-install, pagdumala, ug pag-configure sa usa ka database server (aron kini molihok sama sa gipaabut) usa ka hinungdanon nga kahanas nga kinahanglan adunay matag tagdumala sa sistema.

Niini nga artikulo atong susihon sa makadiyot kung giunsa ang pag-install ug pag-secure sa usa ka server sa database sa MariaDB ug dayon among ipasabut kung giunsa kini i-configure.

Pag-instalar ug Pagsiguro sa usa ka MariaDB Server

Sa CentOS 7.x, gipulihan sa MariaDB ang MySQL, nga makita gihapon sa Ubuntu (uban sa MariaDB). Tinuod usab kini alang sa openSUSE.

Alang sa kamubo, gamiton ra namo ang MariaDB sa kini nga panudlo, apan palihug timan-i nga gawas nga adunay lainlaing mga ngalan ug mga pilosopiya sa pag-uswag, ang duha nga Relational DataBase Management Systems (RDBMSs sa mubo) halos parehas.

Kini nagpasabot nga ang mga sugo sa kilid sa kliyente managsama sa MySQL ug MariaDB, ug ang mga configuration file ginganlan ug nahimutang sa samang mga dapit.

Aron ma-install ang MariaDB, buhata:

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

Timan-i nga, sa Ubuntu, hangyoon ka sa pagsulod sa usa ka password alang sa RDBMS root user.

Kung ma-install na ang mga pakete sa ibabaw, siguroha nga ang serbisyo sa database nagdagan ug gi-aktibo aron magsugod sa boot (sa CentOS ug openSUSE kinahanglan nimo nga himuon kini nga mano-mano nga operasyon, samtang sa Ubuntu ang proseso sa pag-install naatiman na kini. para nimo):

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

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

Dayon padagana ang mysql_secure_installation script. Kini nga proseso magtugot kanimo sa:

  1. itakda/i-reset ang password para sa RDBMS root user
  2. kuhaa ang wala mailhi nga mga login (sa ingon makapahimo lamang sa mga tiggamit nga adunay balido nga account nga maka-log in sa RDBMS)
  3. i-disable ang root access para sa mga makina gawas sa localhost
  4. kuhaa ang test database (nga ma-access ni bisan kinsa)
  5. i-aktibo ang mga pagbag-o nga nalangkit sa 1 hangtod 4.

Alang sa mas detalyado nga paghulagway niini nga proseso, mahimo nimong i-refer ang Post installation section sa Install MariaDB Database sa RHEL/CentOS/Fedora ug Debian/Ubuntu.

Pag-configure sa MariaDB Server

Ang default nga mga opsyon sa configuration gibasa gikan sa mosunod nga mga file sa gihatag nga han-ay: /etc/mysql/my.cnf, /etc/my.cnf, ug ~ /.my.cnf.

Kasagaran, /etc/my.cnf lang ang anaa. Dinhi niini nga file atong itakda ang mga setting sa tibuok server (nga mahimong ma-override sa parehas nga mga setting sa ~/.my.cnf alang sa matag tiggamit).

Ang unang butang nga kinahanglan natong timan-an mahitungod sa my.cnf mao nga ang mga setting giorganisar ngadto sa mga kategorya (o mga grupo) diin ang matag ngalan sa kategorya gilakip sa square bracket.

Ang mga configuration sa sistema sa server gihatag sa [mysqld] nga seksyon, diin kasagaran makita nimo ang unang duha ka setting sa table sa ubos. Ang nahabilin mao ang uban nga kanunay nga gigamit nga mga kapilian (kung diin gipakita, usbon namon ang default nga kantidad sa usa ka kostumbre nga among gipili):

Usbon namo kini aron matudloan ang serbisyo nga maminaw lamang sa nag-unang adres niini (192.168.0.13):

bind_address=192.168.0.13 bind_address=0.0.0.0 port nagrepresentar sa pantalan diin ang database server maminaw.

Among pulihan ang default value(3306) sa 20500 (apan kinahanglan natong sigurohon nga wala nay laing gigamit nga pantalan):
pantalan=20500

Samtang ang pipila ka mga tawo makiglalis nga ang seguridad pinaagi sa kangitngit dili maayo nga praktis, ang pag-ilis sa default nga aplikasyon nga mga pantalan alang sa mas taas kay usa ka sukaranan -apan epektibo - nga pamaagi aron mapugngan ang mga pag-scan sa pantalan. port=3306 innodb_buffer_pool_size mao ang buffer pool (sa bytes) sa memorya nga gigahin alang sa mga datos ug mga indeks nga kanunay nga ma-access kung naggamit sa Innodb (nga mao ang default sa MariaDB) o XtraDB ingon nga storage engine.

Atong pulihan ang default nga kantidad sa 256 MB:

innodb_buffer_pool_size=256M innodb_buffer_pool_size=134217728 skip_name_resolve nagpakita kon ang mga hostname masulbad o dili sa umaabot nga mga koneksyon . Kung gibutang sa 1, sama sa among buhaton sa kini nga giya, mga IP address lamang.

Gawas kung kinahanglan nimo ang mga hostname aron mahibal-an ang mga permiso, gitambagan nga i-disable kini nga variable (aron mapadali ang mga koneksyon ug mga pangutana) pinaagi sa pagbutang sa kantidad niini sa 1:

skip_name_resolve=1 skip_name_resolve=0 query_cache_size nagrepresentar sa gidak-on (sa bytes) nga anaa sa pangutana cache sa disk, diin ang mga resulta sa SELECT nga mga pangutana gitipigan alang sa umaabot nga paggamit kung ang usa ka parehas nga pangutana (sa parehas nga database ug gamit ang parehas nga protocol ug parehas nga set sa karakter) gihimo.

Kinahanglang mopili ka ug query cache size nga mohaum sa imong mga panginahanglan base sa 1) ang gidaghanon sa nagbalik-balik nga mga pangutana, ug 2) ang gibanabana nga gidaghanon sa mga rekord nga gipaabot nga mobalik ang mga balik-balik nga pangutana. Atong ibutang kini nga bili ngadto sa 100 MB sa pagkakaron:

query_cache_size=100M query_cache_size=0 (nga nagpasabot nga gi-disable kini sa default) max_connections mao ang maximum nga gidaghanon sa dungan nga koneksyon sa kliyente sa server . Atong ibutang kini nga bili ngadto sa 30:
max_connections=30Ang matag koneksyon mogamit ug hilo, ug sa ingon makaut-ot sa memorya. Hunahunaa kini nga kamatuoran samtang nagtakda ug max_connections. max_connections=151 thread_cache_size nagpakita sa gidaghanon sa mga thread nga gigahin sa server para magamit pag-usab human ang usa ka kliyente magdiskonekta ug magpagawas sa (mga) hilo nga gigamit kaniadto. Sa niini nga sitwasyon, kini mao ang mas barato (performance-wise) sa paggamit pag-usab sa usa ka hilo kay sa instantiating sa usa ka bag-o nga.

Pag-usab, kini nagdepende sa gidaghanon sa mga koneksyon nga imong gipaabut. Mahimo natong luwas nga ibutang kini nga bili ngadto sa katunga sa gidaghanon sa max_connections:

thread_cache_size=15 thread_cache_size=0 (disabled by default) Sa CentOS, kinahanglan natong isulti ang SELinux nga tugutan ang MariaDB nga maminaw sa usa ka dili standard nga pantalan (20500) sa dili pa i-restart ang serbisyo:

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

Dayon i-restart ang serbisyo sa MariaDB.

Pag-tune sa Pagganap sa MariaDB

Aron matabangan kami sa pagsusi ug pag-tune sa configuration sumala sa among piho nga mga panginahanglan, mahimo namon nga i-install ang mysqltuner (usa ka script nga maghatag mga sugyot aron mapauswag ang paghimo sa among database server ug madugangan ang kalig-on niini):

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

Dayon usba ang direktoryo ngadto sa folder nga gikuha gikan sa tarball (ang eksaktong bersyon mahimong magkalahi sa imong kaso):

# cd major-MySQLTuner-perl-7dabf27

ug pagdagan kini (maaghat ka sa pagsulod sa mga kredensyal sa imong administratibong MariaDB account)

# ./mysqltuner.pl

Ang output sa script mismo makaiikag kaayo, apan laktawan nato sa ubos diin ang mga variable nga i-adjust gilista uban ang girekomendar nga bili:

Ang query_cache_type setting nagpakita kung ang query cache gi-disable (0) o gi-enable (1). Sa kini nga kaso, gitambagan kami sa mysqltuner nga i-disable kini.

Busa nganong gitambagan kita nga i-deactivate kini karon? Ang rason kay ang query cache kay mapuslanon kasagaran sa high-read/low-write scenario (nga dili nato kaso, kay bag-o lang nato na-install ang database server).

WARNING: Sa dili pa maghimo ug mga kausaban sa configuration sa usa ka production server, gidasig ka pag-ayo nga mokonsulta sa usa ka eksperto nga database administrator aron masiguro nga ang rekomendasyon nga gihatag sa mysqltuner dili makaapekto sa negatibo sa kasamtangan nga setting.

Summary

Sa kini nga artikulo among gipasabut kung giunsa ang pag-configure sa usa ka server sa database sa MariaDB pagkahuman na-install ug na-secure kini. Ang mga baryable sa pag-configure nga gilista sa lamesa sa ibabaw pipila ra nga mga setting nga mahimo nimong hunahunaon samtang nangandam sa server alang sa paggamit o kung gi-tune kini sa ulahi. Kanunay nga i-refer ang opisyal nga dokumentasyon sa MariaDB sa dili pa maghimo mga pagbag-o o i-refer ang among mga tip sa pag-tune sa Pagganap sa MariaDB:

Sama sa kanunay, ayaw pagpanuko sa pagpahibalo kanamo kung adunay ka mga pangutana o komento bahin sa kini nga artikulo. Aduna bay laing mga setting sa server nga gusto nimong gamiton? Mobati nga gawasnon sa pagpaambit sa ubang mga komunidad gamit ang comment form sa ubos.