ERROR 2002 (HY000): Über Socket kann keine Verbindung zum lokalen MySQL-Server hergestellt werden

Ich muss mich bei mysql anmelden

[root @ localhost ~]# mysql -uroot -p123456

Warnung: Die Verwendung eines Passworts auf der Befehlszeilenschnittstelle kann unsicher sein.

ERROR 2002 (HY000): Es kann keine Verbindung zum lokalen MySQL-Server über den Socket ‘/var/lib/mysql/mysql.sock hergestellt werden’ (2)

Ich habe festgestellt, dass sich im Pfad /var/lib/mysql/ keine mysql.sock befindet..

Überprüfen Sie den Pfad von mysql.sock

[root @ localhost ~]# ps -ef | grep mysql

Wurzel 23408 1 0 06:01 Punkte/0 00:00:00 /bin/sh /usr/bin/mysqld_safe –datadir=/sctsapp/data/mysql–pid-Datei

=/data/mysql/localhost.localdomain.pid

MySQL 24029 23408 0 06:01 Punkte/0 00:00:00 /usr/sbin/mysqld –basedir=/usr –datadir=/data/mysql

–plugin-dir=/usr/lib64/mysql/plugin –user = mysql –log-error=/var/log/mysqld.log

–pid-file=/data/mysql/localhost.localdomain.pid –Steckdose=/data/mysql/mysql.sock

Wurzel 24784 8954 0 06:07 Punkte/0 00:00:00 grep mysql

Sie haben neue E-Mails in /var/spool/mail/root

aber der Client sucht mysql.sock im Pfad /var/lob/mysql, wenn er sich mysql anmeldet, daher kann der Kunde es nicht finden.

 

Lösung

1. Geben Sie den mysq.sock-Pfad an, wenn Sie sich mysql anmelden.

[root @ localhost ~]# mysql -uroot -px9uLCqlkAfez9p6m -S /data/mysql/mysql.sock

Warnung: Die Verwendung eines Passworts auf der Befehlszeilenschnittstelle kann unsicher sein.

Willkommen beim MySQL-Monitor. Befehle enden mit ; oder g.

Ihre MySQL-Verbindungs-ID lautet 128

Serverversion: 5.6.21 MySQL-Community-Server (Flüssiggas)

Urheberrechte © (c) 2000, 2014, Oracle und / oder verbundene Unternehmen. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer

Mitgliedsorganisationen. Andere Namen können Marken ihrer jeweiligen Eigentümer sein.

Geben Sie „Hilfe“ ein;’ oder 'h’ für Hilfe. Geben Sie 'c . ein’ um die aktuelle Eingabeanweisung zu löschen.

MySQL>

 

2. hinzufügen [Klient] Domain in my.cnf, und geben Sie den echten Pfad von mysql.sock an

vim /etc/my.cnf

[Klient]

Hafen = 3306

socket=/data/mysql/mysql.sock

speichern und schließen,Neustart von mysql, mysql erneut einloggen

[root @ localhost ~]# service mysql neustart

MySQL herunterfahren…. ERFOLG!

MySQL starten. ERFOLG!

[root @ localhost ~]# mysql -uroot -p123456

Warnung: Die Verwendung eines Passworts auf der Befehlszeilenschnittstelle kann unsicher sein.

Willkommen beim MySQL-Monitor. Befehle enden mit ; oder g.

Ihre MySQL-Verbindungs-ID lautet 1

Serverversion: 5.6.21 MySQL-Community-Server (Flüssiggas)

Urheberrechte © (c) 2000, 2014, Oracle und / oder verbundene Unternehmen. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer

Mitgliedsorganisationen. Andere Namen können Marken ihrer jeweiligen Eigentümer sein.

Geben Sie „Hilfe“ ein;’ oder 'h’ für Hilfe. Geben Sie 'c . ein’ um die aktuelle Eingabeanweisung zu löschen.

MySQL>

 

3. Link für mysql.sock erstellen, Sie können sich bei mysql anmelden, ohne den mysql.sock-Pfad anzugeben.

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

 

Anhang:

Die Grundlage von mysql.sock

mysql generiert eine Sock-Datei im Standardpfad /tmp/ beim Start von mysqld_safe.

Diese Datei wird verwendet, um eine Verbindung zwischen Client und Server herzustellen. Angenommen, wir löschen mysql.sock

aus Versehen.

[root@10-186-20-46 lokal]# cd /tmp

[root@10-186-20-46 tmp]# ll total 8

-rw-r–r– 1 Wurzel Wurzel 1201 Juni 25 09:59 my.cnf srwxrwxrwx 1 mysql mysql 0 Juni 25 09:46 mysql.sock

-rw-rw-r– 1 zabbix zabbix 4 Juni 16 15:43 zabbix_agentd.pid

[root@10-186-20-46 tmp]# rm mysql.sock rm: Steckdose entfernen

`mysql.sock'? Ja

[root@10-186-20-46 tmp]# mysql -uroot -p Enter

Passwort: ERROR 2002 (HY000): Kann keine Verbindung zum lokalen MySQL-Server herstellen

über den Socket ‘/tmp/mysql.sock’ (2)

[root@10-186-20-46 tmp]#

Sie können feststellen, dass Sie sich nicht von localhost bei mysql anmelden können.

Wenn Sie mehrere MySQL auf einem Server installiert haben, es werden also viele mysqlxxxx.sock erstellt

im Pfad /tmp/, als verschiedene mysqld_safe gestartet wurden. aber den Pfad von mysqlxxxx.sock können Sie angeben

in my.cnf.aber Sie haben nur einen Client installiert, Wenn Sie sich also bei verschiedenen MySQL-Diensten anmelden möchten, Sie

muss einen anderen Pfad von mysqlxxxx.sock angeben.

Hinweis:

Wenn viele MySQL-Dienste denselben Benutzer und dasselbe Passwort verwenden, und du willst dich nur bei einem mysql anmelden

service.Sie müssen auf den Pfad von mysqlxxxx.sock achten, um zu vermeiden, dass Sie sich beim falschen Service anmelden.

Insgesamt, Sie sollten das Passwort besser anders belassen, wenn viele MySQL-Dienste auf demselben Server laufen.

Hinterlasse eine Antwort