Jinsi ya Kurekebisha MySQL ERROR 1819 (HY000): katika Linux


Unapounda mtumiaji wa MySQL na nenosiri dhaifu, unaweza kukutana na hitilafu 'MySQL ERROR 1819 (HY000): Nenosiri lako halikidhi mahitaji ya sasa ya sera'. Kitaalam, hili si kosa, lakini taarifa kwamba unatumia nenosiri ambalo halikidhi mahitaji ya sera ya nenosiri iliyopendekezwa.

Kwa maneno mengine, unatumia nenosiri dhaifu ambalo linaweza kubashiriwa au kulazimishwa kwa urahisi. Utaratibu wa usalama uliojengewa ndani huwakatisha tamaa watumiaji kuunda nenosiri dhaifu ambalo linaweza kufanya hifadhidata yako kukabiliwa na uvunjaji.

Kwa mfano, nilipata hitilafu wakati wa kuunda mtumiaji kama inavyoonyeshwa

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

Ni jambo lisilofikiriwa kuwa nenosiri ni dhaifu sana na linaweza kuleta hatari ya usalama.

Jinsi ya Kutatua ERROR 1819 ya MySQL (HY000) katika Linux

Hifadhidata ya MySQL husafirishwa na programu-jalizi ya validate_password ambayo inapowashwa, hutekeleza sera ya uthibitishaji wa nenosiri. Kuna viwango 3 vya sera ya uthibitishaji wa nenosiri ambavyo vinatekelezwa na programu-jalizi.

  • CHINI: Huruhusu watumiaji kuweka nenosiri la herufi 8 au chache.
  • KATI: Huruhusu watumiaji kuweka nenosiri la herufi 8 au chache zenye vibambo mchanganyiko na vibambo maalum.
  • STRONG: Huruhusu watumiaji kuweka nenosiri ambalo lina sifa zote za nenosiri la kiwango cha wastani pamoja na faili ya kamusi.

Kwa chaguo-msingi, sera ya nenosiri imewekwa kuwa MEDIUM. Unaweza kuthibitisha kiwango cha sera ya nenosiri, kwa kutekeleza amri:

$ SHOW VARIABLES LIKE 'validate_password%';

Ikiwa utaendesha amri na kupata seti tupu ya pato, basi programu-jalizi haijawashwa bado.

Ili kuwezesha programu-jalizi ya validate_password, endesha amri zilizo hapa chini.

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
mysql> install plugin validate_password soname 'validate_password.so';

Ili kuthibitisha kuwa programu-jalizi imewashwa, endesha amri.

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';

Unapaswa kupata matokeo yaliyoonyeshwa hapa chini:

Ili kutatua suala hilo, unahitaji kuweka sera ya uthibitishaji wa nenosiri kwa kiwango cha chini kabisa. Ninajua hii inasikika kuwa isiyoeleweka kwani inaunda njia ya kuweka nywila dhaifu ambayo inaweza kusababisha hifadhidata yako kuathiriwa na wadukuzi.

Walakini, ikiwa bado unasisitiza kuwa na njia yako, hii ndio unaweza kufanya.

Jinsi ya Kubadilisha Sera ya Uthibitishaji wa Nenosiri la MySQL

Ili kutatua hitilafu ya MySQL ERROR 1819 (HY000), weka sera ya chini ya uthibitishaji wa nenosiri kama inavyoonyeshwa.

mysql> SET GLOBAL validate_password_policy=LOW;
OR
mysql> SET GLOBAL validate_password_policy=0;

Baada ya hapo unaweza kuthibitisha kiwango cha sera ya uthibitishaji wa nenosiri.

$ SHOW VARIABLES LIKE 'validate_password%';

Sasa unaweza kuendelea na kupeana nenosiri dhaifu kama unavyotaka.

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

Ili kurejea kiwango cha sera ya nenosiri la 'MEDIUM', omba tu amri:

mysql> SET GLOBAL validate_password_policy=MEDIUM;

Kwa kibinafsi, singependekeza kuweka sera ya nenosiri ya kiwango cha chini kwa sababu za wazi. Iwe ni mtumiaji wa kawaida au mtumiaji wa hifadhidata, inashauriwa kila wakati kuweka nenosiri thabiti la MySQL lenye zaidi ya vibambo 8 na mchanganyiko wa herufi kubwa, ndogo, nambari na herufi maalum.

Mwongozo huu ni kwa ajili ya wale ambao wanataka kujua jinsi ya kuendesha kosa kama hilo, vinginevyo, kuweka nenosiri kali linapendekezwa kila wakati.