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:
root@jj-SFF-PC:/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:
root@jj-SFF-PC:/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
root@jj-SFF-PC:/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
ofps aux | grep mysql | grep -v grep
- Ervan uitgaande dat de proces-ID
4969
is, beëindigt u metkill -9 4969
- Zoek de proces-ID van mysql met
- Eén stap:
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.
- 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
- Terminal opstarten en uitgeven
sudo Nautilus
Dit start uw Bestandsbeheer met supergebruikersrechten - Navigeer vanuit Nautilus naar waar uw
mysql.sock
-bestand zich bevindt - Klik met de rechtermuisknop op het bestand en selecteer Maak koppeling
- Hernoem het koppelingsbestand naar
mysqld.sock
en klik met de rechtermuisknop op het bestand en Knip het - Ga naar
/var/run
en maak een map met de naammysqld
en voer deze in - Klik nu met de rechtermuisknop en Plakken het koppelingsbestand
- 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:
-
Maak een map met de naam mysqld in de map /var/run. U kunt dat bereiken met het commando
sudo mkdir /var/run/mysqld
. -
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.
- 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
root@ubuntu1404:~# 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!