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?
- Netwerkfout, vooral als de mysql-databaseserver op een externe host draait.
- Er draait geen mysql-server op de genoemde host.
- 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:
-A
– activeert de selectie van alle processen-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:
-l
– geeft luisterpoorten weer-n
– maakt weergave van numerieke adressen mogelijk-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.