Kan geen verbinding maken met lokale MySQL-server via socket ‘/var/lib/mysql/mysql.sock’ (2)

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.sockbestaat 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.sockNAAR /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.cnfen 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_timestampuitschakelen 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.

Other episodes