Meine MySQL-Installation ist fehlerhaft. Wie kann ich es komplett neu konfigurieren?

20

Hier sind die folgenden Befehle, die ich ausgeführt habe.

$ sudo service mysql start
mysql start/running

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

$ aptitude search mysql |grep ^i
i   libapache2-mod-auth-mysql       - Module Apache 2 pour l'authentification vi
i   libdbd-mysql-perl               - Perl5 database interface to the MySQL data
i   libmysqlclient16                - MySQL database client library             
i   mysql-client-5.1                - MySQL database client binaries            
i   mysql-client-core-5.1           - MySQL database core client binaries       
i   mysql-common                    - MySQL database common files, e.g. /etc/mys
i   mysql-server-5.1                - MySQL database server binaries and system 
i   mysql-server-core-5.1           - MySQL database server binaries            
i   php5-mysql                      - MySQL module for php5                     
Alm
quelle
Alm - finden Sie Ihre mysql.log cat /var/log/mysql.logund bearbeiten Sie Ihre Antwort mit dieser Datei ....
HLP
5
Ich mag die Art, wie du grep ^ i dort benutzt hast. Ziemlich intelligent.
Luis Alvarado
Was genau macht es? Eignung ist Installationstools.
user4951
@JimThio Hier finden Sie die installierten Pakete zu dieser Frage.
Wiedereinstellung von Monica - ----

Antworten:

16

Überprüfen Sie vor der Neuinstallation / var / log / mysql auf Protokolldateien, die möglicherweise Hinweise darauf enthalten, warum mysql nicht funktioniert. Wenn keine Protokolle vorhanden sind, ist das Protokoll in der Datei möglicherweise in Ihrer Konfiguration nicht aktiviert: Konfigurieren Sie das MySQL-Fehlerprotokoll

Um ein Paket neu zu installieren, überprüfen Sie die installierte Version mit

dpkg -l|grep mysql-server

dann für version 5.7 verwenden

sudo apt-get install mysql-server-5.7 --reinstall

Wenn dies nicht möglich ist, können Sie das Paket neu konfigurieren, das Sie verwenden können

sudo dpkg-reconfigure mysql-server-5.7
Ciaran Liedeman
quelle
sudo dpkg-recon mysql-server-5.1 hat für mich den Trick , wenn ich 11,10-12,04 i mysqld aktualisiert würde , wurde nicht gestartet , und ich manuell sudo mysqld gezwungen
Hanynowsky
7

FEHLER 2002 (HY000): Keine Verbindung zum lokalen MySQL-Server-Through-Socket '/ tmp / mysql.sock' (2)

In MySQL-Installationen kann angegeben werden, wo wir den Socket für lokale Verbindungen haben. Wenn Aktualisierungen vorgenommen werden, wird nicht selten der Fehler "Kann keine Verbindung zum lokalen MySQL-Server herstellen" angezeigt. Mal sehen, wie man dieses Problem löst.

Der Fehler sieht folgendermaßen aus:

Mysql-u root-p
Enter password:
ERROR 2002 (HY000): Can not connect to local MySQL server-through socket '/ tmp / mysql.sock' (2)

durch können pswir sehen, ob durch Parameter und die Stelle, wo es angegeben wird:

# ps -fea | grep mysqld
mysql    17661 14003  1 Feb19 ?        00:24:59 /usr/local/mysql-percona/libexec/mysqld --basedir=/usr/local/mysql-percona --datadir=/var/data/mysql/datadir/data --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
root     23790  7840  0 09:25 pts/0    00:00:00 grep mysqld

In diesem Fall sehen wir in /var/lib/mysql/mysql.sock. Wenn ein Parameter nicht gefunden wird, schauen Sie in den mysqld-Abschnitt von /etc/my.cnf, um den Parameter zu finden:

grep socket /etc/my.cnf
socket=/var/lib/mysql/mysql.sock

Wenn wir wissen, wo es sich befindet, müssen wir dieselbe Datei ( /etc/my.cnf) ändern und den Parameterabschnitt socket client hinzufügen:

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
hhlp
quelle
1
Das wollte ich als Antwort geben. Ich weiß bereits, dass dies die richtige Antwort für fast alle damit zusammenhängenden Probleme ist. Wirst +1 wenn ich die Fähigkeit wieder bekomme.
Luis Alvarado
danke für die ausführliche erklärung! in meinem Fall, auch wenn ich in my.cnf einen Socket angegeben habe, der nicht darauf gehört hat (in 'ps' angezeigte Parameter sind leer und keine Verbindung möglich. Umgehung: Fügen Sie 'protocoll = tcp' zum Client-Abschnitt in my.cnf hinzu, um
Tapper
2

Für die letzteren Zuschauer:
Ich kam zu dem ähnlichen Fehler , wenn ich MySQL-Server - Paket aktualisieren ist fehlgeschlagen, aber ich fand das mein Problem gelöst . Wenn sudo apt-get install -fes nicht funktioniert, versuchen Sie es sudo apt-get purge mysql*. Jetzt können Sie mysql-server neu installieren.

artificerpi
quelle
1
Bitte beachten Sie, dass sudo apt-get purge mysqlIhre Datenbanken nicht erhalten bleiben
Nelson Owalo
1

Eines der Probleme, auf die ich stoße, ist zu wissen, mit welcher Version ich Probleme habe. Das war eine nette Idee:

$ aptitude search mysql |grep ^i

Aber hier ist, was ich in der Ausgabe kritisch fand:

$ apt-get --reinstall install mysql-server-5.x

(wobei x die Version ist. Wenn Sie dies nicht hinzufügen, könnten Sie mit dem falschen dpkg arbeiten.

Netsec
quelle
0

Das hat bei mir funktioniert

sudo apt purge mysql*
sudo apt autoremove
sudo apt autoclean
sudo apt install mysql-server

Beschreibung

1) Der erste Befehl entfernt alles, was mit MySQL zu tun hat, mit ihren Konfigurationsdateien.

2) Der zweite entfernt die Pakete, die nicht mehr benötigt werden.


Referenzen [!]:

1) DigitalOcean

A - O
quelle