Fix: FEJL 2003 (HY000): Kan ikke oprette forbindelse til MySQL-server på 127.0.0.1 (111)


Denne vejledning er beregnet til at forklare de nødvendige trin til løsning af “FEJL 2003 (HY000): Kan ikke oprette forbindelse til MySQL-server på‘ 127.0.0.1 ’(111)”, som muligvis opstår, når du prøver at få adgang til MySQL-databaseserveren.

Inden du går videre, hvis du er en Linux-bruger, der er ny på MySQL/MariaDB, kan du overveje at lære 20 MySQL (Mysqladmin) -kommandoer til databaseadministration også i Linux.

På den anden side, hvis du allerede er en mellemliggende/erfaren MySQL-bruger, kan du mestre disse 15 nyttige MySQL/MariaDB Performance Tuning og optimerings tip.

Bemærk: I denne tutorial antages det, at du allerede har installeret mysql-databaseserver.

Kommer tilbage til fokuspunktet, hvad er nogle af de mulige årsager til denne fejl?

  1. Netværksfejl, især hvis mysql-databaseserver kører på fjernhost.
  2. Ingen mysql-server kører på den nævnte vært.
  3. Firewall, der blokerer TCP-IP-forbindelse eller af andre relaterede årsager.

Nedenfor er de væsentlige trin til at håndtere det.

1. Hvis databaseserver er på en ekstern maskine, skal du prøve at teste klient-serverforbindelsen ved hjælp af ping -kommandoen, for eksempel:

$ ping server_ip_address

Når der er forbindelse, skal du bruge kommandoen ps nedenfor, der viser oplysninger om et udvalg af de aktive processer sammen med et -rør og grep-kommando for at kontrollere, at mysql-dæmonen er kører på dit system.

$ ps -Af | grep mysqld

hvor muligheden:

  1. -A - aktiverer valg af alle processer
  2. -f - muliggør notering i fuldformat

Hvis der ikke er noget output fra den forrige kommando, skal du starte mysql-tjenesten som følger:

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

Efter start af mysql-tjenesten, prøv at få adgang til databaseserveren:

$ mysql -u username -p -h host_address  

2. Hvis du stadig får den samme fejl, skal du bestemme porten (standard er 3306), som mysql-dæmonen lytter til, ved at køre netstat-kommandoen.

$ netstat -lnp | grep mysql

hvor mulighederne:

  1. -l - viser lytteporte
  2. -n - muliggør visning af numeriske adresser
  3. -p - viser PID og navnet på det program, der ejer stikket

Brug derfor indstillingen -P til at angive den port, du ser fra output ovenfor, mens du får adgang til databaseserveren:

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

3. Hvis alle ovenstående kommandoer kører med succes, men du stadig ser fejlen, skal du åbne mysql-konfigurationsfilen.

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

Se efter linjen nedenfor, og kommenter den ved hjælp af tegnet # :

bind-address = 127.0.0.1 

Gem filen og afslut, genstart derefter mysql-tjenesten sådan:

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

Men hvis du har Iptables, der kører, skal du prøve at gennemgå firewall-tjenester og åbne mysql-porten, forudsat at det er firewall, der blokerer TCP-IP-forbindelser til din mysql-server.

Det er alt! Kender du andre metoder eller har du forslag til løsning af MySQL-forbindelsesfejlen ovenfor? Fortæl os det ved at droppe en kommentar via feedbackformularen nedenfor.