Zoeken op website

Oplossing: FOUT 2003 (HY000): Kan geen verbinding maken met de MySQL-server op '127.0.0.1' (111)


Deze tutorial is bedoeld om de noodzakelijke stappen uit te leggen voor het oplossen van de “ERROR 2003 (HY000): Kan geen verbinding maken met de MySQL-server op '127.0.0.1' (111) ” die kan optreden wanneer u probeert toegang krijgen tot de MySQL-databaseserver.

Voordat u verder gaat: als u een Linux-gebruiker bent die nieuw is bij MySQL/MariaDB, kunt u overwegen MySQL/MariaDB voor beginners te leren – Deel 1 en 20 MySQL (Mysqladmin)-opdrachten voor databasebeheer in Linux ook.

Aan de andere kant, als u al een gemiddelde/ervaren MySQL-gebruiker bent, kunt u deze 15 nuttige MySQL/MariaDB-prestatieafstemming en optimalisatietips onder de knie krijgen.

Opmerking: Voor deze zelfstudie wordt ervan uitgegaan dat u de mysql-databaseserver al hebt geïnstalleerd.

Terugkomend op het focuspunt: wat zijn enkele van de mogelijke oorzaken van deze fout?

  1. Netwerkfout, vooral als de mysql-databaseserver op een externe host draait.
  2. Er draait geen mysql-server op de genoemde host.
  3. Firewall blokkeert de TCP-IP-verbinding of andere gerelateerde redenen.

Hieronder vindt u de essentiële stappen om hiermee om te gaan.

1. Als de databaseserver zich op een externe machine bevindt, probeer dan de client-server-connectiviteit te testen met behulp van de opdracht ping, bijvoorbeeld:

ping server_ip_address

Zodra er verbinding is, gebruikt u het onderstaande ps-commando, dat informatie toont over een selectie van de actieve processen, samen met een pipe- en grep-commando, om te controleren of de mysql-daemon is die op uw systeem draait.

ps -Af | grep mysqld

waar de optie:

  1. -A – activeert de selectie van alle processen
  2. -f – maakt weergave in volledig formaat mogelijk

Als er geen uitvoer is van de vorige opdracht, start u de mysql-service als volgt:

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

Probeer na het starten van de mysql-service toegang te krijgen tot de databaseserver:

mysql -u username -p -h host_address  

2. Als u nog steeds dezelfde foutmelding krijgt, bepaal dan de poort (standaard is 3306) waarop de mysql-daemon luistert door de opdracht netstat uit te voeren.

netstat -lnp | grep mysql

waar de opties:

  1. -l – geeft luisterpoorten weer
  2. -n – maakt weergave van numerieke adressen mogelijk
  3. -p – toont PID en naam van het programma dat eigenaar is van de socket

Gebruik daarom de optie -P om de poort op te geven die u ziet in de bovenstaande uitvoer terwijl u toegang krijgt tot de databaseserver:

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

3. Als alle bovenstaande opdrachten succesvol zijn uitgevoerd, maar u nog steeds de fout ziet, opent u het mysql-configuratiebestand.

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

Zoek de onderstaande regel en geef commentaar met het teken #:

bind-address = 127.0.0.1 

Sla het bestand op en sluit het af, start daarna de mysql-service opnieuw als volgt:

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

Als u echter firewallD of Iptables actief heeft, probeer dan de firewallservices te controleren en de mysql-poort te openen, ervan uitgaande dat het een firewall is die TCP-IP-verbindingen met uw mysql-server blokkeert.

Dat is alles! Kent u andere methoden of heeft u suggesties voor het oplossen van de bovenstaande MySQL-verbindingsfout? Laat het ons weten door een reactie achter te laten via het feedbackformulier hieronder.