പരിഹരിക്കുക: പിശക് 2003 (HY000): 127.0.0.1 (111)-ൽ MySQL സെർവറിലേക്ക് കണക്റ്റുചെയ്യാൻ കഴിയുന്നില്ല


ഈ ട്യൂട്ടോറിയൽ \പിശക് 2003 (HY000): നിങ്ങൾ MySQL ഡാറ്റാബേസ് സെർവർ ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുമ്പോൾ സംഭവിച്ചേക്കാവുന്ന '127.0.0.1' (111) എന്നതിലെ MySQL സെർവറിലേക്ക് കണക്റ്റുചെയ്യാൻ കഴിയുന്നില്ല.

കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് മുമ്പ്, നിങ്ങൾ MySQL/MariaDB-യിൽ പുതിയ ഒരു ലിനക്സ് ഉപയോക്താവാണെങ്കിൽ, ലിനക്സിലും ഡാറ്റാബേസ് അഡ്മിനിസ്ട്രേഷനായി 20 MySQL (Mysqladmin) കമാൻഡുകൾ പഠിക്കുന്നത് നിങ്ങൾക്ക് പരിഗണിക്കാവുന്നതാണ്.

മറുവശത്ത്, നിങ്ങൾ ഇതിനകം ഒരു ഇന്റർമീഡിയറ്റ്/പരിചയമുള്ള MySQL ഉപയോക്താവാണെങ്കിൽ, നിങ്ങൾക്ക് ഈ 15 ഉപയോഗപ്രദമായ MySQL/MariaDB പെർഫോമൻസ് ട്യൂണിംഗും ഒപ്റ്റിമൈസേഷൻ ടിപ്പുകളും മാസ്റ്റർ ചെയ്യാൻ കഴിയും.

ശ്രദ്ധിക്കുക: ഈ ട്യൂട്ടോറിയലിനായി, നിങ്ങൾ ഇതിനകം mysql ഡാറ്റാബേസ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് അനുമാനിക്കുന്നു.

ഫോക്കസ് പോയിന്റിലേക്ക് തിരികെ വരുമ്പോൾ, ഈ പിശകിന്റെ സാധ്യമായ ചില കാരണങ്ങൾ എന്തൊക്കെയാണ്?

  1. പ്രത്യേകിച്ച് mysql ഡാറ്റാബേസ് സെർവർ റിമോട്ട് ഹോസ്റ്റിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ നെറ്റ്uവർക്ക് പരാജയം.
  2. പരാമർശിച്ച ഹോസ്റ്റിൽ mysql സെർവറൊന്നും പ്രവർത്തിക്കുന്നില്ല.
  3. TCP-IP കണക്ഷനോ മറ്റ് അനുബന്ധ കാരണങ്ങളോ ഫയർവാൾ തടയുന്നു.

അത് കൈകാര്യം ചെയ്യുന്നതിനുള്ള പ്രധാന ഘട്ടങ്ങൾ ചുവടെയുണ്ട്.

1. ഡാറ്റാബേസ് സെർവർ ഒരു റിമോട്ട് മെഷീനിലാണെങ്കിൽ, ping കമാൻഡ് ഉപയോഗിച്ച് ക്ലയന്റ്-സെർവർ കണക്റ്റിവിറ്റി പരീക്ഷിക്കാൻ ശ്രമിക്കുക, ഉദാഹരണത്തിന്:

$ ping server_ip_address

കണക്റ്റിവിറ്റി ഉണ്ടെങ്കിൽ, mysql ഡെമൺ ആണോ എന്ന് പരിശോധിക്കാൻ, pipe, grep കമാൻഡ് എന്നിവയ്uക്കൊപ്പം സജീവമായ പ്രക്രിയകളുടെ ഒരു തിരഞ്ഞെടുപ്പിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ കാണിക്കുന്ന ps കമാൻഡ് ഉപയോഗിക്കുക. നിങ്ങളുടെ സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്നു.

$ ps -Af | grep mysqld

ഓപ്ഷൻ എവിടെ:

  1. -A – എല്ലാ പ്രക്രിയകളുടെയും തിരഞ്ഞെടുപ്പ് സജീവമാക്കുന്നു
  2. -f – പൂർണ്ണ ഫോർമാറ്റ് ലിസ്റ്റിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നു

മുമ്പത്തെ കമാൻഡിൽ നിന്ന് ഔട്ട്പുട്ട് ഇല്ലെങ്കിൽ, mysql സേവനം ഇനിപ്പറയുന്ന രീതിയിൽ ആരംഭിക്കുക:

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

mysql സേവനം ആരംഭിച്ച ശേഷം, ഡാറ്റാബേസ് സെർവർ ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുക:

$ mysql -u username -p -h host_address  

2. നിങ്ങൾക്ക് ഇപ്പോഴും ഇതേ പിശക് ലഭിക്കുകയാണെങ്കിൽ, netstat കമാൻഡ് പ്രവർത്തിപ്പിച്ച് mysql ഡെമൺ ശ്രവിക്കുന്ന പോർട്ട് (സ്ഥിരസ്ഥിതി 3306 ആണ്) നിർണ്ണയിക്കുക.

$ netstat -lnp | grep mysql

ഓപ്ഷനുകൾ എവിടെ:

  1. -l – ലിസണിംഗ് പോർട്ടുകൾ പ്രദർശിപ്പിക്കുന്നു
  2. -n – സംഖ്യാ വിലാസങ്ങളുടെ പ്രദർശനം പ്രവർത്തനക്ഷമമാക്കുന്നു
  3. -p – PID, സോക്കറ്റിന്റെ ഉടമസ്ഥതയിലുള്ള പ്രോഗ്രാമിന്റെ പേര് എന്നിവ കാണിക്കുന്നു

അതിനാൽ ഡാറ്റാബേസ് സെർവർ ആക്സസ് ചെയ്യുമ്പോൾ മുകളിലുള്ള ഔട്ട്പുട്ടിൽ നിന്ന് നിങ്ങൾ കാണുന്ന പോർട്ട് വ്യക്തമാക്കാൻ -P ഓപ്ഷൻ ഉപയോഗിക്കുക:

$ mysql -u username -p -h host_address -P port

3. മുകളിലുള്ള എല്ലാ കമാൻഡുകളും വിജയകരമായി പ്രവർത്തിക്കുന്നു, പക്ഷേ നിങ്ങൾ ഇപ്പോഴും പിശക് കാണുകയാണെങ്കിൽ, mysql config ഫയൽ തുറക്കുക.

$ vi /etc/mysql/my.cnf
OR
$ vi /etc/mysql/mysql.conf.d/mysqld.cnf 

താഴെയുള്ള വരി നോക്കി # പ്രതീകം ഉപയോഗിച്ച് അഭിപ്രായമിടുക:

bind-address = 127.0.0.1 

ഫയൽ സംരക്ഷിച്ച് പുറത്തുകടക്കുക, അതിനുശേഷം mysql സേവനം പുനരാരംഭിക്കുക:

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

എന്നിരുന്നാലും, നിങ്ങൾക്ക് Iptables പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ ഫയർവാൾ സേവനങ്ങൾ അവലോകനം ചെയ്ത് mysql പോർട്ട് തുറക്കാൻ ശ്രമിക്കുക, ഇത് നിങ്ങളുടെ mysql സെർവറിലേക്കുള്ള TCP-IP കണക്ഷനുകളെ തടയുന്നത് ഫയർവാൾ ആണെന്ന് കരുതുക.

അത്രയേയുള്ളൂ! നിങ്ങൾക്ക് മറ്റ് രീതികൾ അറിയാമോ അല്ലെങ്കിൽ മുകളിലുള്ള MySQL കണക്ഷൻ പിശക് പരിഹരിക്കുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ ഉണ്ടോ? ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി ഒരു അഭിപ്രായം രേഖപ്പെടുത്തിക്കൊണ്ട് ഞങ്ങളെ അറിയിക്കുക.