Ciallaíonn Earráid 2006 ar a dtugtar MySQL Sever imithe, go ndiúltaíonn an freastalaí ceangal cé go bhfuil sé ag rith. Níl ach trí chúis ar eolas go bhfuil an chuma ar an earráid. Is é an chéad chúis ná go bhfuil an freastalaí ró-ualach. Tá an t-am feithimh imithe in éag. Is é an dara chúis gur sheol an cliant pacáiste a bhí ró-tinn. Ar an tríú dul síos, níor cuireadh tús leis an bhfreastalaí go hiomlán. Ansin, déanfaimid machnamh go mion ar cén fáth go bhfuil an earráid le feiceáil agus conas déileáil leis.
De ghnáth bíonn an earráid le feiceáil agus tú ag iarraidh ceangal le bunachar sonraí ag baint úsáide as PHP, cliant consól, nó nuair a bhíonn PhpMyAdmin in úsáid:
Breathnaímid níos faide ar gach cás ar leithligh.
Mar a luadh ag tús an ailt, is cúis fhéideartha amháin é an teorainn ama. Seans go raibh an freastalaí ró-ualaithe agus nach féidir leis dul i ngleic leis an ualach a bhaineann le gach nasc a phróiseáil. Chun a thuiscint cé chomh fada agus a thógann sé iarratais ar fhreastalaí a chomhlánú, is féidir leat aon chliant consól a úsáid agus ceangal leis an bhfreastalaí. Má éiríonn leat é seo a dhéanamh, comhlánaigh aon iarratas. Má thógann sé ró-fhada ceisteanna a phróiseáil, is féidir leat MySQL a bharrfheabhsú ag baint úsáide as script MySQLTuner speisialta. Go hiondúil méadaítear méid linne innill InnoDB trí pharaiméadar innodb_buffer_pool_size
a shocrú. Cinntear an luach is fearr ag baint úsáide as an script thuas.
Más é 800 meigeavata é (d’fhéadfadh méid difriúil a bheith ann), scríobhaimid:
$ sudo vi /etc/mysql/my.cnf innodb_buffer_pool_size=800M
Tá bealach eile ann chun an fhadhb a réiteach. Chun seo a dhéanamh, méadaítear an t-am freagartha ón bhfreastalaí. Chun an tasc seo a dhéanamh, ní mór duit an paraiméadar wait_timeout
a athrú. Seo an t-am i soicindí a gcaithfidh tú fanacht le freagra ón bhfreastalaí.
Mar shampla:
wait_timeout=500
Agus athruithe á ndéanamh, ná déan dearmad an freastalaí a atosú:
$ sudo systemctl restart mysql
nó:
$ sudo systemctl restart mariadb
Nuair a chruthaíonn cliant úsáideora an iomarca paicéid, caithfidh an freastalaí an earráid chruinn seo. Is féidir an méid paicéad atá ar fáil (uasluach) a mhéadú ag baint úsáide as an pharaiméadar max_allowed_packet
.
Mar shampla:
$ sudo vi /etc/mysql/my.cnf max_allowed_packet=128M
Tabhair aird ar leith ar an gcliant, mar má sheolann sé go leor iarrataí, ansin is léir go bhfuil tú ag déanamh rud éigin mícheart. Ar a laghad, níor cheart duit fiosruithe a ghiniúint chuig MySQL ag baint úsáide for
lúba.
Má shocraíonn tú MySQL nó MariaDB a imscaradh i Docker, ansin bí réidh le teacht ar earráid chomhchosúil. Teastaíonn beagán níos mó ama saor chun an coimeádán a thúsú. Mura gceadaíonn tú don choimeádán inisealú a chríochnú trí é a stopadh ar dtús agus é a thosú, cuirfidh an bunachar sonraí an earráid seo ar ais i gcónaí. Is é an réiteach ná sonraí an choimeádáin a scriosadh go hiomlán leis an mbunachar sonraí.
Déantar é seo mar seo:
$ docker-compose down
nó:
$ docker rm mysql-container
Ansin, ní mór duit an stóráil (toirt) a scriosadh leis an mbunachar sonraí a cuireadh tús leis go mícheart. Ach ar dtús, féach ar an liosta de na stórtha go léir:
$ docker volume ls
Ansin scriosaimid:
$ docker volume rm volume_name
Anois is féidir leat an feidhmchlár a thúsú, ach fan go dtuairiscíonn an freastalaí bunachar sonraí go bhfuil sé réidh agus gur féidir leat ceangal leis.