Ndụmọdụ bara uru iji dozie mperi a na-ahụkarị na MySQL


MySQL bụ sistemụ njikwa nchekwa data nke mepere emepe (RDMS) nke Oracle nwere. Ọ kemgbe ọtụtụ afọ bụ nhọrọ ndabara maka ngwa dabere na webụ ma ka na-ewu ewu ma e jiri ya tụnyere igwe nchekwa data ndị ọzọ.

Emebere MySQL na kachasị maka ngwa weebụ - ọ bụ akụkụ dị mkpa nke ngwa webụsaịtị dị ka Facebook, Twitter, Wikipedia, YouTube, na ọtụtụ ndị ọzọ.

Ọ bụ MySQL kwadoro saịtị ma ọ bụ ngwa weebụ gị? N'ime akụkọ a zuru ezu, anyị ga-akọwa otu esi edozi nsogbu na njehie nkịtị na MySQL nchekwa data nkesa. Anyị ga-akọwa otu esi achọpụta ihe kpatara nsogbu na ihe a ga-eme iji dozie ha.

1. Enweghị ike ijikọ na mpaghara MySQL Server

Otu n'ime njehie njikọ nkesa na MySQL bụ \ERROR 2002 (HY000): Enweghị ike ijikọ na sava MySQL mpaghara site na oghere '/var/run/mysqld/mysqld.sock' (2).

Njehie a na-egosi na ọ nweghị ihe nkesa MySQL (mysqld) na-agba ọsọ na sistemụ nnabata ma ọ bụ na ị kọwapụtala aha faịlụ Unix socket na-ezighi ezi ma ọ bụ ọdụ ụgbọ mmiri TCP/IP mgbe ị na-agbalị ijikọ na sava ahụ.

Gbaa mbọ hụ na ihe nkesa na-agba ọsọ site na ịlele usoro aha ya bụ mysqld na nchekwa data sava gị na-eji iwu grep ọnụ dị ka egosiri.

$ ps xa | grep mysqld | grep -v mysqld

Ọ bụrụ na iwu ndị a dị n'elu egosighi mmepụta, mgbe ahụ, ihe nkesa nchekwa data anaghị arụ ọrụ. Ya mere onye ahịa enweghị ike ijikọ ya. Iji malite ihe nkesa, mee iwu systemctl na-esonụ.

$ sudo systemctl start mysql        #Debian/Ubuntu
$ sudo systemctl start mysqld       #RHEL/CentOS/Fedora

Iji nyochaa ọkwa ọrụ MySQL, jiri iwu na-esonụ.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Site na mmepụta nke iwu dị n'elu, ọrụ MySQL adaala. N'ọnọdụ dị otú ahụ, ị nwere ike ịnwa ịmalitegharị ya wee lelee ọkwa ya ọzọ.

$ sudo systemctl restart mysql
$ sudo systemctl status mysql

Na mgbakwunye, ọ bụrụ na ihe nkesa na-agba ọsọ dị ka e gosipụtara site na iwu na-esonụ, ma ị ka na-ahụ njehie dị n'elu, ị ga-enyochakwa na a na-egbochi TCP/IP ọdụ ụgbọ mmiri site na firewall ma ọ bụ ọrụ mgbochi ọdụ ụgbọ mmiri ọ bụla.

$ ps xa | grep mysqld | grep -v mysqld

Iji iwu netstat dị ka egosiri.

$ sudo netstat -tlpn | grep "mysql"

2. Enweghị ike ijikọ na MySQL Server

Njehie njikọ ọzọ a na-ezutekarị bụ \(2003) Enweghị ike ijikọ na ihe nkesa MySQL na 'sava' (10061), nke pụtara na ajụla njikọ netwọkụ.

N'ebe a, malite site na ịlele na e nwere ihe nkesa MySQL na-agba ọsọ na usoro dị ka egosiri n'elu. Hụkwa na ihe nkesa ahụ nwere njikọ netwọk na-enyere aka yana na ọdụ ụgbọ mmiri ị na-eji jikọọ bụ nke ahaziri na sava ahụ.

Njehie ndị ọzọ a na-ahụkarị ị ga-ezute mgbe ị na-agbalị ijikọ na sava MySQL bụ:

ERROR 2003: Can't connect to MySQL server on 'host_name' (111)
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Njehie ndị a na-egosi na ihe nkesa nwere ike na-agba ọsọ, Otú ọ dị, ị na-agbalị ijikọ site na iji ọdụ ụgbọ mmiri TCP/IP, nke aha ya bụ ọkpọkọ, ma ọ bụ faịlụ Unix dị iche na nke ihe nkesa na-ege ntị.

3. Nweta njehie jụrụ na MySQL

Na MySQL, a kọwapụtara akaụntụ onye ọrụ n'usoro aha njirimara yana onye ahịa ma ọ bụ ndị ọbịa nke onye ọrụ nwere ike jikọọ na sava ahụ. Na mgbakwunye, akaụntụ nwekwara ike ịnwe nzere nyocha dị ka paswọọdụ.

Ọ bụ ezie na e nwere ọtụtụ ihe dị iche iche na-akpata njehie \Nnweta agọnarị, otu n'ime ihe ndị a na-emekarị bụ gbasara akaụntụ MySQL nke ihe nkesa na-enye ohere ka mmemme ndị ahịa jiri mgbe ejikọtara ya. Ọ na-egosi na aha njirimara akọwapụtara na njikọ ahụ enweghị ohere ịnweta. nchekwa data.

MySQL na-enye ohere ịmepụta akaụntụ nke na-enyere ndị ọrụ ahịa aka jikọọ na ihe nkesa na ịnweta data nke ihe nkesa na-achịkwa. N'akụkụ a, ọ bụrụ na ị zutere njehie anabataghị ohere, lelee ma ọ bụrụ na ekwe ka akaụntụ onye ọrụ jikọọ na ihe nkesa site na mmemme ndị ahịa ị na-eji, yana ikekwe onye ọbịa nke njikọ ahụ sitere.

Ị nwere ike ịhụ ihe ùgwù akaụntụ nyere site n'ịgba iwu GOAKWỤKWỌ KWESỊRỊ dị ka egosiri.

> SHOW GRANTS FOR 'tecmint'@'localhost';

Ị nwere ike inye otu onye ọrụ ohere na nchekwa data akọwapụtara na adreesị IP dịpụrụ adịpụ site na iji iwu ndị a na shei MySQL.

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

Ọzọkwa, ohere anabataghị njehie nwekwara ike ịpụta site na nsogbu ijikọ na MySQL, rụtụ aka na mperi akọwara mbụ.

4. Echefuola Njikọ na MySQL Server

Ị nwere ike izute njehie a n'ihi otu n'ime ihe ndị a: njikọta netwọk adịghị mma, oge njikọ ma ọ bụ nsogbu nwere ụkpụrụ BLOB nke buru ibu karịa max_allowed_packet. N'ọnọdụ nsogbu njikọ netwọkụ, hụ na ị nwere njikọ netwọkụ dị mma karịsịa ma ọ bụrụ na ị na-enweta ihe nkesa nchekwa data dịpụrụ adịpụ.

Ọ bụrụ na ọ bụ nsogbu nkwụsị oge njikọ, karịsịa mgbe MySQL na-agbalị iji njikọ mbụ na ihe nkesa ahụ, welie uru nke paramita connect_timeout. Mana ọ bụrụ na ụkpụrụ BLOB buru ibu karịa max_allowed_packet, ịkwesịrị ịtọ uru dị elu maka max_allowed_packet na faịlụ nhazi /etc/my.cnf gị n'okpuru [mysqld] ma ọ bụ [onye ahịa] ngalaba dị ka egosiri.

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Ọ bụrụ na faịlụ nhazi MySQL enweghị ike ịnweta gị, mgbe ahụ ị nwere ike ịtọ uru a site na iji iwu na-esonụ na shei MySQL.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

5. Ọtụtụ MySQL Njikọ

Ọ bụrụ na onye ahịa MySQL ezute njehie\ọtụtụ njikọ , ọ pụtara na njikọ niile dị na ndị ahịa ndị ọzọ na-eji ya. Ọnụ ọgụgụ njikọ (ndabara bụ 151) bụ usoro max_connections na-achịkwa. mgbanwe; ị nwere ike dozie nsogbu ahụ site n'ịbawanye uru ya iji nyekwuo njikọ na faịlụ nhazi /etc/my.cnf gị.

[mysqld]
max_connections=1000

6. Ọ bụ ebe nchekwa MySQL

Ọ bụrụ na ị na-eji mmemme onye ahịa MySQL na-agba ajụjụ wee zute njehie a na-ajụ, ọ pụtara na MySQL enweghị ebe nchekwa zuru ezu iji chekwaa nsonaazụ ajụjụ niile.

Nzọụkwụ mbụ bụ ịhụ na ajụjụ ahụ ziri ezi, ọ bụrụ na ọ dị, mee ihe ndị a:

  • ọ bụrụ na ị na-eji MySQL ahịa ozugbo, malite ya na - ngwa ngwa, iji gbanyụọ nsonaazụ echekwara ma ọ bụ
  • ọ bụrụ na ị na-eji ọkwọ ụgbọala MyODBC, interface njirimara nhazi (UI) nwere taabụ dị elu maka ọkọlọtọ. Lelee Edola nsonaazụ cache.

Ngwá ọrụ ọzọ dị mma bụ, MySQL Tuner - edemede bara uru nke ga-ejikọta na ihe nkesa MySQL na-agba ọsọ ma na-enye aro maka otu esi ahazi ya maka ịrụ ọrụ dị elu.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

Maka ntụzịaka nkwalite MySQL na ntụzịaka ịrụ ọrụ, gụọ akụkọ anyị: 15 bara uru MySQL/MariaDB Ntụle Nrụpụta na Ntụziaka.

7. MySQL nọgidere na-akụda

Ọ bụrụ na ị zutere nsogbu a, ị kwesịrị ịgbalị ịchọpụta ma nsogbu ahụ bụ na ihe nkesa MySQL anwụọ ma ọ bụ ma onye ahịa ya nwere nsogbu. Rịba ama na ọtụtụ mkpọka nkesa na-ebute site na faịlụ data mebiri emebi ma ọ bụ faịlụ ndeksi.

Ị nwere ike ịlele ọkwa nkesa iji guzobe ogologo oge ọ na-arụ ọrụ.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

N'aka nke ọzọ, mee iwu mysqladmin a ka ịchọta oge nkesa MySQL.

$ sudo mysqladmin version -p 

Ngwọta ndị ọzọ na-agụnye mana ọnweghị oke na ịkwụsị ihe nkesa MySQL na ime ka nbipu, wee malite ọrụ ahụ ọzọ. Ị nwere ike ịnwa ịme ikpe nlele nke enwere ike iji megharịa nsogbu ahụ. Na mgbakwunye, mepee windo ọnụ ọzọ wee mee iwu na-esonụ iji gosipụta ọnụ ọgụgụ usoro MySQL mgbe ị na-agba ajụjụ gị ndị ọzọ:

$ sudo mysqladmin -i 5 status
OR
$ sudo mysqladmin -i 5 -r status 

Ọ bụ ezie na anyị leba anya n'ụfọdụ nsogbu na njehie MySQL ma nyekwa ụzọ isi dozie nsogbu na dozie ha, ihe kacha mkpa na ịchọpụta njehie bụ ịghọta ihe ọ pụtara (n'ihe gbasara ihe na-akpata ya).

Yabụ kedu ka ị ga-esi chọpụta nke a? Isi ihe ndị a ga-eduzi gị otu esi amata ihe na-ebute nsogbu:

  1. Nzọụkwụ mbụ na nke kachasị mkpa bụ ileba anya na ndekọ MySQL nke echekwara na ndekọ /var/log/mysql/. Ị nwere ike iji ngwa ahịrị iwu dị ka ọdụ ka ịgụọ site na faịlụ ndekọ.
  2. Ọ bụrụ na ọrụ MySQL amaliteghị, lelee ọkwa ya site na iji systemctl ma ọ bụ jiri journetctl (ya na -xe ọkọlọtọ) iwu n'okpuru systemd iji nyochaa nsogbu ahụ.
  3. Ịnwekwara ike inyocha faịlụ ndekọ sistemụ dị ka /var/log/messages ma ọ bụ ihe yiri ya maka ihe kpatara nsogbu gị.
  4. Gbalịa iji ngwaọrụ dị ka htop chọpụta ihe mmemme na-ewere CPU niile ma ọ bụ na-akpọchi igwe ma ọ bụ chọpụta ma ebe nchekwa na-agwụ gị, oghere diski, nkọwa faịlụ, ma ọ bụ ihe enyemaka ọzọ dị mkpa.
  5. Iche na nsogbu ahụ bụ usoro ịgba ọsọ, ị nwere ike ịgbalị igbu ya mgbe niile (iji pkill ma ọ bụ gbuo utility) ka MySQL rụọ ọrụ nke ọma.
  6. N'iche na ihe nkesa mysqld na-akpata nsogbu, ị nwere ike ịme iwu a: mysqladmin -u root ping ma ọ bụ mysqladmin -u root processlist iji nweta nzaghachi ọ bụla site na ya.
  7. Ọ bụrụ na nsogbu dị na mmemme onye ahịa gị ka ị na-achọ ijikọ na sava MySQL, lelee ihe kpatara na ọ naghị arụ ọrụ nke ọma, gbalịa nweta nsonaazụ ọ bụla na ya maka ebumnuche nchọpụta nsogbu.

Ị nwekwara ike ịmasị ịgụ akụkọ MySQL ndị a:

  1. Mụta MySQL/MariaDB maka ndị mbido – Akụkụ 1
  2. Otu esi enyocha MySQL/MariaDB ọdụ data site na iji Netdata na CentOS 7
  3. Etu esi ebufe ọdụ data MySQL niile site na ochie gaa na nkesa ọhụrụ
  4. Mytop – Ngwa bara uru maka nlekota MySQL/Arụmọrụ MariaDB na Linux
  5. 12 MySQL/MariaDB Omume Kachasị Mma maka Linux

Maka ozi ndị ọzọ, lelee akwụkwọ ntuziaka MySQL gbasara nsogbu na njehie nkịtị, ọ na-edepụta nke ọma nsogbu na ozi njehie ị nwere ike izute mgbe ị na-eji MySQL, gụnyere ndị anyị tụlere n'elu yana ndị ọzọ.