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.