Mon installation MySQL est cassée. Comment le reconfigurer complètement?

20

Voici les commandes suivantes que j'ai faites.

$ 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
la source
alm - trouvez votre mysql.log cat /var/log/mysql.loget éditez votre réponse avec ce fichier ....
hhlp
5
J'aime la façon dont vous avez utilisé grep ^ i là-bas. Assez intelligent.
Luis Alvarado
Qu'est-ce que cela fait exactement? aptitude est un outil d'installation.
user4951
@JimThio C'est pour trouver les packages installés liés à cette question.
Reinstate Monica - ζ--

Réponses:

16

Avant de réinstaller, vérifiez / var / log / mysql pour les fichiers journaux qui peuvent contenir des indices sur les raisons pour lesquelles mysql ne fonctionne pas. S'il n'y a pas de journaux, le journal dans le fichier peut ne pas être activé dans votre configuration: Configurer le journal des erreurs Mysql

Pour réinstaller un package, vérifiez la version installée avec

dpkg -l|grep mysql-server

puis pour la version 5.7, utilisez

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

Si cela ne vous permet pas de reconfigurer le package que vous pouvez utiliser

sudo dpkg-reconfigure mysql-server-5.7
Ciaran Liedeman
la source
sudo dpkg-reconfigure mysql-server-5.1 a fait l'affaire pour moi lorsque je suis passé de 11.10 à 12.04 i mysqld ne démarre pas et j'ai été obligé de manuellement sudo mysqld
Hanynowsky
7

ERREUR 2002 (HY000): Impossible de se connecter à la socket locale du serveur MySQL '/ tmp / mysql.sock' (2)

Dans MySQL, les installations peuvent spécifier où nous aurons le socket pour les connexions locales. Lors de la mise à jour, il n'est pas rare de voir l'erreur "Impossible de se connecter au socket local du serveur MySQL". Voyons comment résoudre ce problème.

L'erreur ressemble à ceci:

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

à travers psnous pouvons voir si est spécifié par paramètre et l'endroit où il se trouve:

# 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

Dans ce cas, nous voyons est en /var/lib/mysql/mysql.sock. S'il n'est pas trouvé en tant que paramètre, il faut regarder dans la section mysqld de /etc/my.cnfpour trouver le paramètre:

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

Si nous savons où il se trouve, nous devons modifier le même fichier ( /etc/my.cnf) et ajouter le client de socket de la section des paramètres:

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
hhlp
la source
1
C'est ce que j'allais répondre. Je sais déjà que c'est la bonne réponse pour presque tous les problèmes connexes comme celui-ci. Je vous attribuerai +1 lorsque j'aurai à nouveau la capacité.
Luis Alvarado
merci pour l'explication approfondie! dans mon cas, même si j'ai spécifié un socket dans my.cnf, il ne l'a pas écouté (les paramètres affichés dans 'ps' sont vides et aucune connexion possible. solution de contournement: ajoutez 'protocololl = tcp' à la section client de my.cnf pour force en utilisant TCP et non la prise
Tapper
2

Pour ces derniers téléspectateurs:
je suis arrivé à l'erreur similaire lorsque je n'ai pas réussi à mettre à niveau le paquet mysql-server, mais j'ai trouvé que cela résolvait mon problème . Quand sudo apt-get install -fça ne marche pas, essayez sudo apt-get purge mysql*. Vous pouvez maintenant réinstaller mysql-server.

artificerpi
la source
1
veuillez noter que sudo apt-get purge mysqlne conservera pas vos bases de données
Nelson Owalo
1

L'un des problèmes que je rencontre est de savoir avec quelle version j'ai des problèmes. C'était une bonne idée:

$ aptitude search mysql |grep ^i

Mais voici ce que j'ai trouvé critique dans le problème:

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

(où x est la version. Si vous n'ajoutez pas cela, vous pourriez travailler avec le mauvais dpkg.

Netsec
la source
0

Cela a fonctionné pour moi

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

La description

1) La première commande supprime tout ce qui concerne MySQL avec leurs fichiers de configuration.

2) Le second supprime les paquets qui ne sont plus nécessaires.


Réfrences [!]:

1) DigitalOcean

A - O
la source