fout: ‘Kan geen verbinding maken met lokale MySQL-server via socket ‘/var/run/mysqld/mysqld.sock’ (2)’ Ontbrekende /var/run/mysqld/mysqld.sock

Mijn probleem begon met het niet meer kunnen inloggen als root op mijn mysql-installatie. Ik probeerde mysql uit te voeren zonder dat wachtwoorden waren ingeschakeld… maar telkens als ik het commando uitvoerde

# mysqld_safe --skip-grant-tables &

Ik zou de prompt nooit terugkrijgen. Ik probeerde deze instructies te volgen om het wachtwoord te herstellen.

Het scherm ziet er zo uit:

[email protected]:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

en ik krijg geen prompt om de SQL-commando’s te typen om het wachtwoord opnieuw in te stellen.

Als ik het dood door op CTRL + C te drukken, krijg ik het volgende bericht:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Als ik de opdracht opnieuw probeer en lang genoeg laat, krijg ik de volgende reeks berichten:

[email protected]:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+  Done                    mysqld_safe --skip-grant-tables
[email protected]:/run/mysqld#

Maar als ik dan als root probeer in te loggen door het volgende te doen:

# mysql -u root

Ik krijg de volgende foutmelding:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Ik heb het gecontroleerd en het bestand /var/run/mysqld/mysqld.sock bestaat niet. De map wel, maar het bestand niet.

Ik weet ook niet of dit helpt of niet, maar ik heb find / -name mysqld uitgevoerd en het kwam met:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

Ik ben nieuw in Linux en MySQL, dus ik weet niet of dit normaal is of niet. Maar ik voeg deze informatie toe voor het geval het helpt.

Ik heb uiteindelijk besloten om mysql te verwijderen en opnieuw te installeren.

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

Na het opnieuw installeren van alle pakketten in dezelfde volgorde als hierboven, kreeg ik tijdens de installatie van phpmyadmin dezelfde foutmelding:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Dus ik probeerde opnieuw om te verwijderen/opnieuw te installeren. Deze keer heb ik, nadat ik de pakketten had verwijderd, ook handmatig alle mysql-bestanden en -mappen hernoemd naar mysql.bad op hun respectievelijke locaties.

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

Vervolgens probeerde ik mysql-server en mysql-client opnieuw te installeren. Maar ik heb gemerkt dat het me niet om een ​​wachtwoord vraagt. Moet het niet om een ​​beheerderswachtwoord vragen?


Antwoord 1, autoriteit 100%

Om alle socketbestanden op uw systeem te vinden, voert u het volgende uit:

sudo find / -type s

Mijn Mysql-serversysteem had de socket open op /var/lib/mysql/mysql.sock

Zodra je hebt gevonden waar de socket wordt geopend, voeg of bewerk je de regel aan je /etc/my.cnf-bestand met het pad naar het socket-bestand:

socket=/var/lib/mysql/mysql.sock

Soms specificeert het opstartscript van het systeem dat het uitvoerbare bestand van de opdrachtregel startte een vlag --socket=path. Deze vlag zou de my.cnf-locatie kunnen overschrijven, en dat zou ertoe leiden dat een socket niet wordt gevonden waar het my.cnf-bestand aangeeft dat het zou moeten zijn. Wanneer u vervolgens de mysql-opdrachtregelclient probeert uit te voeren, zal deze my.cnf lezen om de socket te vinden, maar deze zal deze niet vinden omdat deze afwijkt van waar de server er een heeft gemaakt. Dus, tenzij het je uitmaakt waar de socket zich bevindt, zou het gewoon moeten werken om de my.cnf aan te passen.

Stop dan het mysqld-proces. Hoe u dit doet, verschilt per systeem.

Als je een supergebruiker bent in het Linux-systeem, probeer dan een van de volgende dingen als je niet weet welke specifieke methode je Mysql-installatie gebruikt:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Sommige systemen zijn niet zo ingesteld dat ze een elegante manier hebben om mysql te stoppen (of om de een of andere reden reageert mysql niet) en je kunt mysql geforceerd beëindigen met:
    • Eén stap: pkill -9 mysqld
    • Twee stappen (minst de voorkeur):
      • Zoek de proces-ID van mysql met pgrep mysql of ps aux | grep mysql | grep -v grep
      • Ervan uitgaande dat de proces-ID 4969 is, beëindigt u met kill -9 4969

Nadat je dit hebt gedaan, wil je misschien een pid-bestand zoeken in /var/run/mysqld/ en dit verwijderen

Zorg ervoor dat de machtigingen op uw socket zodanig zijn dat elke gebruiker die mysqld draait, ernaar kan lezen/schrijven. Een eenvoudige test is om het te openen voor volledig lezen/schrijven en te kijken of het nog steeds werkt:

chmod 777 /var/run/mysqld/mysqld.sock

Als het probleem hiermee is opgelost, kunt u de machtigingen en het eigendom van de socket naar behoefte aanpassen op basis van uw beveiligingsinstellingen.

De map waarin de socket zich bevindt, moet ook bereikbaar zijn voor de gebruiker die het mysqld-proces uitvoert.


Antwoord 2, autoriteit 96%

Probeer deze opdracht,

sudo service mysql start

Antwoord 3, autoriteit 79%

Deze fout treedt op vanwege meerdere installaties van mysql.
Voer de opdracht uit:

ps -A|grep mysql

Dood het proces met:

sudo pkill mysql

en voer dan het commando uit:

ps -A|grep mysqld

Sluit dit proces ook af door het volgende uit te voeren:

sudo pkill mysqld

Nu ben je helemaal klaar, voer gewoon de volgende opdrachten uit:

service mysql restart
mysql -u root -p

Weer weer een goed werkende mysql


Antwoord 4, autoriteit 20%

De oplossing is veel eenvoudiger.

  1. Eerst moet je zoeken (in Terminal met “sudo find / -type s”) waar je mysql.sock-bestand zich bevindt. In mijn geval was het in /opt/lampp/var/mysql/mysql.sock
  2. Terminal opstarten en uitgeven
    sudo Nautilus
    Dit start uw Bestandsbeheer met supergebruikersrechten
  3. Navigeer vanuit Nautilus naar waar uw mysql.sock-bestand zich bevindt
  4. Klik met de rechtermuisknop op het bestand en selecteer Maak koppeling
  5. Hernoem het koppelingsbestand naar mysqld.sock en klik met de rechtermuisknop op het bestand en Knip het
  6. Ga naar /var/run en maak een map met de naam mysqld en voer deze in
  7. Klik nu met de rechtermuisknop en Plakken het koppelingsbestand
  8. Voila! Je hebt nu een mysqld.sock-bestand op /var/run/mysqld/mysqld.sock 🙂

Antwoord 5, autoriteit 13%

Moet alleen MySQL-service starten na installatie:

Voor Ubuntu:

sudo service mysql start;

Voor CentOS of RHEL:

sudo service mysqld start;

Antwoord 6, autoriteit 8%

Er is een bug in Ubuntu met MySQL 5.6 en 5.7 waarbij var/run/mysqld/ zou verdwijnen wanneer de MySQL-service stopt of opnieuw wordt opgestart. Dit voorkomt dat MySQL helemaal niet wordt uitgevoerd. Deze tijdelijke oplossing gevonden, die niet perfect is, maar hij werkt in ieder geval na het stoppen/opnieuw opstarten:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

Antwoord 7, autoriteit 6%

Oké, kopieer en plak deze codes: Dit moet worden gedaan in de terminal, in een server, wanneer uw mysql-database niet correct is geïnstalleerd en wanneer u deze foutmelding krijgt: ‘Kan geen verbinding maken met de lokale MySQL-server via socket ‘/var/run/mysqld/mysqld.sock’ (2)’.

MijnSql stoppen

sudo /etc/init.d/mysqld stop

Herstart het of start het

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

Maak een link zoals deze en geef deze aan het systeem

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

Voer een veilige installatie uit die al het proces begeleidt dat u moet doen om mysql te configureren

/usr/bin/mysql_secure_installation

Antwoord 8, autoriteit 6%

Ik kreeg dezelfde fout te maken en ontdekte dat dit te wijten was aan een upgrade van pakketten. Dus nadat ik mijn systeem opnieuw had opgestart, heb ik de fout opgelost.

Ik denk dat vanwege de update van sql-bibliotheken/-pakketten die fout is opgetreden, dus probeer dit als je aan het upgraden bent 🙂


Antwoord 9, autoriteit 6%

Zorg ervoor dat uw ontoegankelijke socketbestandspad hetzelfde is als ‘/var/run/mysqld/mysqld.sock’, anders verander het pad naar het uwe.
Stop de mysqld

$ sudo /etc/init.d/mysqld stop

Als het proces nog steeds loopt;

$ sudo pkill -9 mysqld

Verwijder de mysql-map waar socket wordt gemaakt. Voor mij mocht het niet verwijderen, dus ik moest het met geweld verwijderen.

$ sudo mkdir -p /var/run/mysqld

Stel het eigendom in op de directory

$ sudo chown mysql:mysql /var/run/mysqld

Start mysql

$ sudo /etc/init.d/mysql start

Proberen verbinding te maken met mysql

$ sudo mysql -u dbuser -p

Antwoord 10, autoriteit 4%

Het antwoord van de stap voor het laden van de gebruiker werkte voor mij.
Soms is het nodig om het bestand te bewerken in /etc/mysql/my.cnf regel toevoegen aan client

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

Antwoord 11, autoriteit 4%

Er is veel reden voor dit probleem, maar soms start u de mysql-server gewoon opnieuw op om het probleem op te lossen.

sudo service mysql restart

Antwoord 12, autoriteit 3%

XAMPP gebruiken op ubuntu:

  1. Maak een map met de naam mysqld in de map /var/run. U kunt dat bereiken met het commando sudo mkdir /var/run/mysqld.

  2. Maak een symbolische link naar het bestand mysql.sock dat door de XAMPP-server wordt gemaakt wanneer het wordt gestart. Je kunt het commando sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock gebruiken.

Opmerking: het bestand mysql.sock wordt gemaakt wanneer de server wordt gestart en verwijderd wanneer de server wordt gestopt, dus soms lijkt de link die u hebt gemaakt te zijn verbroken maar het zou moeten werken zolang je de server hebt gestart met sudo /opt/lampp/lampp start of op een andere manier.

  1. Start de server als deze nog niet actief is en probeer uw programma opnieuw uit te voeren.

Veel succes! Ik hoop dat je er deze keer mee wegkomt.


Antwoord 13, autoriteit 3%

Waarom krijg ik deze foutmelding

Ik heb nieuwe updates van mysql-bibliotheken ontvangen, dus ik heb mijn Kubuntu-besturingssysteem bijgewerkt waarna ik deze fouten kreeg.


Opdrachten die ik heb geprobeerd en hoe ik deze heb opgelost.

MySql-server werkt correct maar toen ik probeerde verbinding te maken, gaf het

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

Ik heb /var/run/mysqld/mysqld.sock'. deze map.
Mijn bestanden bestonden niet.

Ik heb deze commando’s ook geprobeerd om verbinding te maken, maar werkte niet voor mij.

 mysql -h 127.0.0.1 -P 3306 -u root -p
 sudo service mysql start

Na ongeveer 2 uur te hebben verspild, vond ik de oplossing

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

Daarna was alles voor mij opgelost.


Antwoord 14, autoriteit 3%

*Fout: ‘Kan geen verbinding maken met lokale MySQL-server via socket ‘/var/run/mysqld/mysqld.sock’ (2)’

oplossingen

eindelijk mysql verwijderen en opnieuw installeren. **

  • sudo apt-get remove mysql-server
  • sudo apt-get remove mysql-client
  • sudo apt-get remove mysql-common
  • sudo apt-get verwijder phpmyadmin

installeer vervolgens opnieuw door

  • sudo apt-get install mysql-server-5.6

Na deze bewerking wordt 164 MB extra schijfruimte gebruikt.

  • Wilt u doorgaan? [Y/n] Y druk op YES voor volledige installaties

……
…….

  • Eindelijk krijg je deze regels….

    libhtml-template-perl (2.95-1) instellen …

    mysql-common-5.6 (5.6.16-1~exp1) instellen …
    Verwerkingstriggers voor libc-bin (2.19-0ubuntu6)
    Verwerkingstriggers voor ureadahead (0.100.0-16) …

  • En dan

    [email protected]:~# mysql -u root -p (voor elk wachtwoord eerst u
    zou moeten gebruiken )

  • Voer wachtwoord in:

  • Opmerking: het ingevoerde wachtwoord moet hetzelfde zijn als de installatietijd
    wachtwoord van mysql (zoals .root,system,admin,rahul etc…)

    Typ vervolgens

  • GEBRUIK rahul_db(databasenaam);

Bedankt.**


Antwoord 15, autoriteit 3%

Ik denk dat je MySQL-server niet is gestart. Start de server dus met een van de volgende opdrachten.

#services mysql start

of

#/etc/init.d/mysql start

Antwoord 16, autoriteit 3%

Tijdelijke oplossing

Misschien heeft iemand met dit probleem te maken. Ik gebruik Mysql Workbench op Ubuntu 14 en kreeg deze foutmelding.

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

Vind je socketbestand door sudo find / -type s uit te voeren, in mijn geval was het /run/mysqld/mysqld.sock

Dus ik heb zojuist een link naar dit bestand gemaakt in de map tmp.

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

Houd er rekening mee dat dit een tijdelijke oplossing is, aangezien het aangemaakte bestand onder /tmp staat. Zie andere antwoorden voor een permanente oplossing.


Antwoord 17, autoriteit 2%

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

in /etc/my.cnf voeg deze regels toe:

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

En herstart de service met:
service mysql restart

dit werkte voor mij


Antwoord 18, autoriteit 2%

je kunt mysqld.sock vinden in /var/run/mysqld als je mysql-server al hebt geïnstalleerd
door sudo apt-get install mysql-server


Antwoord 19, autoriteit 2%

Dit is al een paar keer genoemd, maar dit werkte meteen voor mij:

service mysql herstart


Antwoord 20

In mijn geval waren er twee mysqld-processen actief..
doodde de optionele processen met behulp van
pkill -9 mysqld


Antwoord 21

Als je veel databases en tabellen op je systeem hebt, en als je innodb_file_per_table hebt ingesteld in my.cnf, dan heeft je mysql-server mogelijk geen geopende objecten / bestanden meer (of liever de descriptoren voor deze objecten)
Stel een nieuw max. aantal in met

open-files-limit = 2048

en herstart mysql.
Deze aanpak kan helpen als de socket helemaal niet is gemaakt, maar dit is misschien niet het echte probleem, er is een onderliggend probleem.


Antwoord 22

Ik had net dit probleem op Ubuntu 14.10

Het blijkt dat mysql-server niet langer was geïnstalleerd (op de een of andere manier was het verwijderd), maar ik kon het niet gewoon installeren omdat er enkele kapotte pakketten waren en afhankelijkheidsproblemen/conflicten.

Uiteindelijk moest ik mysql opnieuw installeren

sudo apt-get remove mysql-client
sudo apt-get install mysql-server

Antwoord 23

Mijn oplossing;

Ubuntu 18.04 (WSL)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

Ik heb de poort gewijzigd. Het heeft voor mij gewerkt. U kunt een andere poort schrijven. Voorbeeld 3355


Antwoord 24

Ik gebruik XAMPP op Ubuntu. Ik vond deze fout bij het verbinden van de database via de terminal. Ik los het op zonder enige configuratie omdat het standaard socketbestandspad in XAMPP als volgt is geschreven in “/opt/lampp/etc/my.cnf”:

[client]
#password   = your_password
port        = 3306
socket      = /opt/lampp/var/mysql/mysql.sock

u kunt nu verbinding maken door deze socket-padparameter te geven met het mysql-commando op terminal zoals:

mysql -u root --socket /opt/lampp/var/mysql/mysql.sock

en het is gedaan zonder enige configuratie.

Als je niet elke keer socketpad wilt typen, verander dan het standaardpad in my.cnf door “/var/run/mysqld/mysqld.sock”. Geef machtigingen en start de mysql-server opnieuw.

Bewerken:
Onlangs heb ik Ubuntu 20.04 geïnstalleerd en probeerde ik de MySQL-server te installeren, maar mijn systeem crashte en werkte helemaal niet. Dus ik heb MySQL zojuist volledig verwijderd en MariaDB geïnstalleerd. Het werkt als een zonnetje zonder problemen.


Antwoord 25

Het wijzigen van de host in 127.0.0.1 werkte voor mij.

Bewerk het bestand in /etc/mysql/my.cnf en voeg de onderstaande regel toe aan de sectie: client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

Als je klaar bent. Voer de volgende opdracht uit.

sudo service mysql start

Antwoord 26

Ik heb mysql verwijderd in Ubuntu 16.04 https://askubuntu.com/questions/172514/how -do-i-uninstall-mysql

Ik heb mysql opnieuw geïnstalleerd
https://www.digitalocean. com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04

Dit leek te werken.


Antwoord 27

Maak eerst dir /var/run/mysqld aan

met commando:

mkdir -p /var/run/mysqld

voeg dan rechten toe aan de map

chown mysql:mysql /var/run/mysqld

na deze poging

mysql -u root

Antwoord 28

Ik had precies hetzelfde probleem. Na een uur worstelen, vond ik een manier om het te corrigeren zonder mysql-common, mysql-client, mysql-server opnieuw te installeren.

Ga eerst naar “/var/run/mysqld”. U zult merken dat de mysql.sock niet bestaat. Verwijder gewoon de hele mysqld-map en maak deze opnieuw aan en geef hem de nodige privileges.

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

Dood nu het mysql-proces in zijn geheel. Het is mogelijk dat u “wachten op paginaopruiming” ziet bij het uitvoeren van de opdracht “/etc/init.d/mysql status”, zelfs nadat de service is afgesloten.

Gebruik

. om de service volledig te sluiten

# pkill -9 mysqld

Zodra het proces is gestopt, probeert u het opnieuw te starten met

# /etc/init.d/mysql start

En je zult zien dat het goed werkt! En het zal ook geen probleem zijn om het te stoppen.


Antwoord 29

Ik zou ook de mysql-configuratie controleren. Ik liep tegen dit probleem aan met mijn eigen server, maar ik was een beetje te haastig en had de innodb_buffer_pool_size verkeerd geconfigureerd voor mijn machine.

innodb_buffer_pool_size = 4096M

Het werkt meestal prima tot 2048, maar ik denk dat ik niet het geheugen heb dat nodig is om 4 optredens te ondersteunen.

Ik kan me voorstellen dat dit ook zou kunnen gebeuren met andere mysql-configuratie-instellingen.


Antwoord 30

Ik had een soortgelijk probleem op een CentOS VPS. Als MySQL niet start of blijft crashen direct nadat het is gestart, probeer dan deze stappen:

1) Zoek mijn.cnf-bestand (de mijne bevond zich in /etc/my.cnf) en voeg de regel toe:

innodb_force_recovery = X

X vervangen door een getal van 1 tot 6, beginnend bij 1 en vervolgens verhogend als MySQL niet start. Als u instelt op 4, 5 of 6, kunnen uw gegevens worden verwijderd, dus wees voorzichtig en lees http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html eerder.

2) Start de MySQL-service opnieuw. Alleen SELECT wordt uitgevoerd en dat is op dit moment normaal.

3) Dump al je databases/schema’s één voor één met mysqldump, comprimeer de dumps niet omdat je ze later toch zou moeten decomprimeren.

4) Verplaats (of verwijder!) alleen de mappen van de bd in /var/lib/mysql, waarbij de individuele bestanden in de root behouden blijven.

5) Stop MySQL en verwijder het commentaar van de regel die is toegevoegd in 1). Start MySQL.

6) Herstel alle bd’s die in 3) zijn gedumpt.

Veel succes!

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes