Le répertoire mysqld_safe ‘/ var / run / mysqld’ pour le fichier de socket UNIX n’existe pas

Tout en démarrant le serveur mysql 5.7.17 en utilisant mysqld_safe, suite à l’erreur occcours.

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists. 

Comment le réparer ?

Il semble étrange que ce répertoire n’ait pas été créé lors de l’installation – avez-vous modifié manuellement le chemin du fichier socket dans le fichier my.cfg?

Avez-vous essayé de créer simplement ce répertoire vous-même et de redémarrer le service?

 mkdir -p /var/run/mysqld chown mysql:mysql /var/run/mysqld 

Quand j’ai utilisé le code mysqld_safe --skip-grant-tables & mais j’ai eu l’erreur:

Le répertoire mysqld_safe ‘/ var / run / mysqld’ pour le fichier de socket UNIX n’existe pas.

 $ systemctl stop mysql.service $ ps -eaf|grep mysql $ mysqld_safe --skip-grant-tables & 

J’ai résolu:

 $ mkdir -p /var/run/mysqld $ chown mysql:mysql /var/run/mysqld 

Maintenant, j’utilise le même code mysqld_safe --skip-grant-tables & et

mysqld_safe Démarrage du démon mysqld avec les bases de données de / var / lib / mysql

Si j’utilise $ mysql -u root j’aurai:

Version du serveur: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle et / ou ses filiales. Tous les droits sont réservés.

Oracle est une marque déposée d’Oracle Corporation et / ou de ses filiales. Les autres noms peuvent être des marques déposées de leurs propriétaires respectifs.

Tapez ‘help;’ ou ‘\ h’ pour de l’aide. Tapez ‘\ c’ pour effacer la déclaration en cours.

mysql>

Il est maintenant temps de changer le mot de passe:

 mysql> use mysql mysql> describe user; 

Lire les informations de la table pour compléter les noms de table et de colonne Vous pouvez désactiver cette fonction pour obtenir un démarrage plus rapide avec -A

Base de données modifiée

 mysql> FLUSH PRIVILEGES; mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd'); 

ou Si vous avez un compte root mysql qui peut se connecter de partout, vous devriez aussi faire:

 UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root'; 

Méthode alternative:

  USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = 'localhost' AND User = 'root'; 

Et si vous avez un compte root qui peut accéder de partout:

  USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = '%' AND User = 'root';`enter code here 

maintenant besoin de quit mysql et stop / start

 FLUSH PRIVILEGES; sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start 

maintenant à nouveau `mysql -u root -p ‘et utiliser le nouveau mot de passe pour obtenir

mysql>

Travaillez pour moi dans CentOS:

 $ service mysql stop $ mysqld --skip-grant-tables & $ mysql -u root mysql mysql> FLUSH PRIVILEGES; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; $ service mysql restart 

Vous pouvez essayer les solutions suivantes si votre firebase database ne contient aucune donnée OU si vous en avez un autre pour restaurer ces données. Vous devrez connaître le mot de passe root du serveur Ubuntu mais pas le mot de passe root mysql.

Il est fort probable que beaucoup d’entre nous ont installé “mysql_secure_installation”, car c’est une bonne pratique. Naviguez jusqu’au répertoire bin où mysql_secure_installation existe. On peut le trouver dans le répertoire / bin sur les systèmes Ubuntu. En réexécutant le programme d’installation, vous serez invité à modifier le mot de passe de la firebase database racine.