Ik krijg de volgende foutmelding wanneer ik probeer verbinding te maken met mysql:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Is er een oplossing voor deze fout? Wat kan de reden erachter zijn?
Antwoord 1, autoriteit 100%
Maak je verbinding met “localhost” of “127.0.0.1”? Ik heb gemerkt dat wanneer je verbinding maakt met “localhost” de socket-connector wordt gebruikt, maar wanneer je verbinding maakt met “127.0.0.1” de TCP/IP-connector wordt gebruikt. Je zou kunnen proberen “127.0.0.1” te gebruiken als de socket-connector niet is ingeschakeld/werkt.
Antwoord 2, autoriteit 82%
Zorg ervoor dat uw mysql-service actief is
service mysqld start
Probeer dan een van de volgende dingen:
(als u geen wachtwoord voor mysql heeft ingesteld)
mysql -u root
als je al een wachtwoord hebt ingesteld
mysql -u root -p
Antwoord 3, autoriteit 13%
Als uw bestand my.cnf (meestal in de map etc) correct is geconfigureerd met
socket=/var/lib/mysql/mysql.sock
je kunt controleren of mysql actief is met het volgende commando:
mysqladmin -u root -p status
probeer uw toestemming te wijzigen in de map mysql. Als u lokaal werkt, kunt u het volgende proberen:
sudo chmod -R 777 /var/lib/mysql/
dat heeft het voor mij opgelost
Antwoord 4, autoriteit 10%
De MySQL-server wordt niet uitgevoerd of dat is niet de locatie van het socketbestand (controleer MY.CNF).
Antwoord 5, Autoriteit 10%
Hoogstwaarschijnlijk mysql.sock
bestaat niet in /var/lib/mysql/
.
Als u hetzelfde bestand op een andere locatie vindt, dan is Symlink het:
voor ex: ik heb het in /data/mysql_datadir/mysql.sock
Wissel de gebruiker naar MySQL en voer de onderstaande onderstaande uit:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
die mijn probleem oplost
Antwoord 6, Autoriteit 9%
Als u op een recent RIER bent, moet u mogelijk Mariadb starten (een Open Source MySQL DB) in plaats van de MySQL DB:
yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start
U moet dan in staat zijn om op de gebruikelijke manier toegang te krijgen tot MySQL:
mysql -u root -p
Antwoord 7, Autoriteit 6%
In mijn geval heb ik contactbestand verplaatst naar een andere locatie binnen /etc/my.cnf
van /var/lib/mysql/mysql.sock
NAAR /tmp/mysql.sock
Zelfs na het herstarten van de MySQLD-service, zie ik nog steeds het foutbericht wanneer ik probeer verbinding te maken.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Het probleem is met de manier waarop de client is geconfigureerd. Lopende diagnostiek zal daadwerkelijk de juiste socketpad tonen. bijv. ps aux | grep mysqld
werkt:
mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock
werkt niet:
mysql -uroot -p
mysql -uroot -p -hlocalhost
U kunt dit probleem oplossendoor dezelfde socket-regel toe te voegen onder de sectie [client]
in de mysql-configuratie.
Antwoord 8, autoriteit 6%
Bewerk gewoon /etc/my.cnf
Voeg de volgende regels toe aan my.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
Herstart mysql en maak opnieuw verbinding
mysql -u gebruiker -p wachtwoorddatabase -h host;
Antwoord 9, autoriteit 5%
Controleer of uw mysqld-service actief is of niet, zo niet, start de service.
Als je probleem niet is opgelost, zoek dan naar /etc/my.cnf
en pas het als volgt aan, waar je een regel ziet die begint met socket
. Maak een back-up van dat bestand voordat u deze update uitvoert.
socket=/var/lib/mysql/mysql.sock
Wijzigen in
socket=/opt/lampp/var/mysql/mysql.sock -u root
Antwoord 10, autoriteit 3%
MariaDB, een door de gemeenschap ontwikkelde vork van MySQL, is in veel distributies de standaardimplementatie van MySQL geworden.
Dus eerst moet je beginnen,
$ sudo systemctl start mariadb
Als dit niet lukt, probeer het dan liever,
$ sudo systemctl start mysqld
Om vervolgens mysql te starten,
$ mysql -u root -p
Vanaf vandaag heet het pakket in Fedora mariadb
En in Ubuntu heet het mariadb-server
.
Het kan dus zijn dat u het moet installeren als het nog niet op uw systeem is geïnstalleerd.
Antwoord 11, autoriteit 3%
Zorg dat je genoeg ruimte over hebt in /var
. Als Mysql-demon geen aanvullende informatie naar de schijf kan schrijven, start de mysql-server niet en dit leidt tot de fout Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Overweeg het gebruik van
expire_logs_days = 10
max_binlog_size = 100M
Dit zal u helpen het schijfgebruik laag te houden.
Antwoord 12, autoriteit 2%
Controleer of een andere mysql-service actief is.
Antwoord 13, autoriteit 2%
Dit is wat voor mij werkte:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart
Antwoord 14, autoriteit 2%
Zorg ervoor dat je de server hebt gestart:
mysql.server start
Verbind dan met root-gebruiker:
mysql -uroot
Antwoord 15
Als uw mysql voorheen werkte en plotseling is gestopt, “start” dan gewoon de server opnieuw op.
Ondervond dit probleem op mijn CentOS VPS.->
Kreeg constant
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2)
Alle technieken geprobeerd, eindelijk herstarten van de server loste de problemen op ->
shutdown -r now
Hopelijk helpt dit !!
Antwoord 16
probeer
echo 0 > /selinux/enforce
Antwoord 17
als je bestanden wijzigt in /var/lib/mysql [ like dat kopiëren of vervangen], moet je de eigenaar van bestanden instellen op mysql. Dit is zo belangrijk als het opnieuw opstarten van mariadb.service is mislukt
chown -R mysql:mysql /var/lib/mysql/*
chmod -R 700 /var/lib/mysql/*
Antwoord 18
Voer eerst “service mysqld start” in en log in
Antwoord 19
Zorg ervoor dat je de MySQL-server correct hebt geïnstalleerd, ik heb deze fout vaak ontmoet en ik denk dat het ingewikkeld is om fouten op te sporen vanuit de socket, ik bedoel, het is misschien gemakkelijker om het opnieuw te installeren.
Als je CentOS 7 gebruikt, is dit de juiste manier om het te installeren:
Voeg eerst de mysql-communitybron toe
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Dan kun je het installeren door yum install mysql-community-server
Start het met systemctl: systemctl start mysqld
Antwoord 20
Mijn probleem was dat ik mysql met succes heb geïnstalleerd en het werkte prima.
Maar op een dag deed zich dezelfde fout voor.
Kan geen verbinding maken met lokale MySQL-server via socket ‘/var/lib/mysql/mysql.sock’ (2)
En er bestond geen mysql.sock-bestand.
Deze oplossing loste mijn probleem op en mysql werkte weer:
Log in als root:
sudo su -
Uitvoeren:
systemctl stop mysqld.service
systemctl start mysqld.service
systemctl enable mysqld.service
Test als root:
mysql -u root -p
mysql zou nu moeten werken.
Ik hoop dat dit ook iemand anders kan helpen.
Antwoord 21
Merk op dat hoewel mysql de informatie over de locatie van het socketbestand uit het my.cnf-bestand leest, het programma mysql_secure_installation dat soms niet correct lijkt te doen.
Dus als je net als ik bent en dingen door elkaar schudt tijdens de installatie, zou je in de situatie kunnen komen waarin je prima verbinding kunt maken met de database met mysql, maar het ding kan niet worden beveiligd (hoe dan ook niet met dat script).
p>
Om dit op te lossen werkt de suggestie van sreddy goed: maak een softlink van waar het script de socket zou verwachten naar waar het daadwerkelijk is. Voorbeeld:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
(Ik gebruik /tmp/ als standaardlocatie voor sockets)
Antwoord 22
Het werkte voor mij met de volgende wijzigingen
Welk pad voor socket wordt genoemd in [mysqld] en hetzelfde in [client] in my.cnf en start mysql opnieuw
[mysqld]
socket=/var/lib/mysql/mysql.sock
[klant]
socket=/var/lib/mysql/mysql.sock
Antwoord 23
Een manier om deze fout te reproduceren: als u verbinding wilde maken met een buitenlandse server, maar in plaats daarvan verbinding maakt met de niet-bestaande lokale server:
eric@dev ~ $ mysql -u dev -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock' (2)
eric@dev ~ $
Dus je moet de host als volgt specificeren:
eric@dev ~ $ mysql --host=yourdb.yourserver.com -u dev -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.6.19 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+-------------------------+
| Database |
+-------------------------+
| information_schema |
| mysql |
| performance_schema |
+-------------------------+
3 rows in set (0.00 sec)
mysql> exit
Bye
eric@dev ~ $
Antwoord 24
Dit is misschien een domme suggestie, maar maak 100% zeker dat je DB nog steeds wordt gehost bij localhost. Als een netwerkbeheerder bijvoorbeeld (of is gewijzigd in) Amazon DB-hosting, heb je in plaats daarvan die hostnaam nodig!
Antwoord 25
In mijn geval, ik importeerde een nieuwe database, en ik kon daarna niet meer verbinden. Eindelijk besefte ik dat dat een ruimtesprobleem was.
Dus u kunt de laatste database verwijderen en u een harde schijf uitzetten of wat ik deed, een momentopname van mijn virtuele machine.
Voor het geval iemand denkt dat nuttig is
Antwoord 26
Liep in dit probleem terwijl u probeert MySQL in SSH-client aan te sluiten, vond het voegpaden toe aan de opdracht handige bij het schakelen tussen aansluitingen nodig.
> mysql -u user -p --socket=/path/to/mysql5143.sock
Antwoord 27
Dit is een probleem als u geen schijfruimte meer hebt.
Oplossing is om wat ruimte uit de HDD te bevrijden.
Lees meer om de uitleg te hebben:
Als u MySQL gebruikt bij Linux Controleer de vrije ruimte van HDD met de opdrachtschijf gratis:
df
Als u zoiets krijgt:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 5162828 4902260 0 100% /
udev 156676 84 156592 1% /dev
/dev/sda3 3107124 70844 2878444 3% /home
Dan is dit het probleem en nu heb je de oplossing!
Aangezien mysql.sock wil worden aangemaakt in de mysql-map die zich bijna altijd onder de hoofdmap bevindt, kon dit niet worden bereikt vanwege ruimtegebrek.
Als je regelmatig het ls-commando geeft onder de mysql-directory (bij openSUSE 11.1 is /var/lib/mysql) krijg je zoiets als:
hostname:/var/lib/mysql #
.protected IT files ibdata1 mysqld.log systemtemp
.tmp NEWS greekDB mysql mysqld.pid test
ARXEIO TEMP1 ib_logfile0 mysql.sock polis
DATING deisi ib_logfile1 mysql_upgrade_info restore
Het mysql.sock-bestand verschijnt en verdwijnt vaak (u moet proberen toe te wijzen met de ls om een instantie te raken met het mysql.sock-bestand in de map).
Dit wordt veroorzaakt door onvoldoende schijfruimte.
Ik hoop dat ik wat mensen kan helpen!!!!
Bedankt!
Antwoord 28
Ik moest explicit_defaults_for_timestamp
uitschakelen in my.cnf.
Antwoord 29
Probeer de eerste 2, 3 oplossingen. Fout is nog steeds pop-up & Als u /var/lib/mysql/mysql.sock
niet kunt vinden
find /var/ -name mysql.sock
Controleer de beschikbare ruimte in /var/
df
Als de map vol is, verwijder dan enkele onbruikbare bestanden/mappen
rm /var/cache/*
Waarschijnlijk wordt uw probleem nu opgelost.
Antwoord 30
Als je in de schil van sf.netzit, probeer dan:
mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p
Wijzig {LETTER} en {GROUP ID} zoals weergegeven in uw MySQL-database van projectbeheerdersprofiel.