പരിഹരിക്കുക: പിശക് 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 ഡാറ്റാബേസ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് അനുമാനിക്കുന്നു.
ഫോക്കസ് പോയിന്റിലേക്ക് തിരികെ വരുമ്പോൾ, ഈ പിശകിന്റെ സാധ്യമായ ചില കാരണങ്ങൾ എന്തൊക്കെയാണ്?
- പ്രത്യേകിച്ച് mysql ഡാറ്റാബേസ് സെർവർ റിമോട്ട് ഹോസ്റ്റിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ നെറ്റ്uവർക്ക് പരാജയം.
- പരാമർശിച്ച ഹോസ്റ്റിൽ mysql സെർവറൊന്നും പ്രവർത്തിക്കുന്നില്ല.
- TCP-IP കണക്ഷനോ മറ്റ് അനുബന്ധ കാരണങ്ങളോ ഫയർവാൾ തടയുന്നു.
അത് കൈകാര്യം ചെയ്യുന്നതിനുള്ള പ്രധാന ഘട്ടങ്ങൾ ചുവടെയുണ്ട്.
1. ഡാറ്റാബേസ് സെർവർ ഒരു റിമോട്ട് മെഷീനിലാണെങ്കിൽ, ping
കമാൻഡ് ഉപയോഗിച്ച് ക്ലയന്റ്-സെർവർ കണക്റ്റിവിറ്റി പരീക്ഷിക്കാൻ ശ്രമിക്കുക, ഉദാഹരണത്തിന്:
$ ping server_ip_address
കണക്റ്റിവിറ്റി ഉണ്ടെങ്കിൽ, mysql ഡെമൺ ആണോ എന്ന് പരിശോധിക്കാൻ, pipe
, grep കമാൻഡ് എന്നിവയ്uക്കൊപ്പം സജീവമായ പ്രക്രിയകളുടെ ഒരു തിരഞ്ഞെടുപ്പിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ കാണിക്കുന്ന ps
കമാൻഡ് ഉപയോഗിക്കുക. നിങ്ങളുടെ സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്നു.
$ ps -Af | grep mysqld
ഓപ്ഷൻ എവിടെ:
-A
– എല്ലാ പ്രക്രിയകളുടെയും തിരഞ്ഞെടുപ്പ് സജീവമാക്കുന്നു-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
ഓപ്ഷനുകൾ എവിടെ:
-l
– ലിസണിംഗ് പോർട്ടുകൾ പ്രദർശിപ്പിക്കുന്നു-n
– സംഖ്യാ വിലാസങ്ങളുടെ പ്രദർശനം പ്രവർത്തനക്ഷമമാക്കുന്നു-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ബാക്ക് ഫോം വഴി ഒരു അഭിപ്രായം രേഖപ്പെടുത്തിക്കൊണ്ട് ഞങ്ങളെ അറിയിക്കുക.