Lors du démarrage de mysql server 5.7.17 avec mysqld_safe, l'erreur suivante se produisait.
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 de socket dans le fichier my.cfg?
Avez-vous essayé simplement de créer vous-même ce répertoire 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 que j'ai l'erreur:
mysqld_safe Le répertoire '/ 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 je reçois
mysqld_safe Démarrer le 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 de commerce de leurs propriétaires respectifs.
Tapez 'aide'; ou '\ h' pour obtenir de l'aide. Tapez '\ c' pour effacer l'instruction d'entrée actuelle.
mysql>
Il est maintenant temps de changer de mot de passe:
mysql> use mysql
mysql> describe user;
Lecture des informations de table pour compléter les noms de table et de colonne Vous pouvez désactiver cette fonctionnalité pour 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 pouvant 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 pouvant accéder de partout:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
maintenant besoin de quit
de mysql et d’arrêter/de commencer
FLUSH PRIVILEGES;
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start
maintenant à nouveau `mysql -u root -p 'et utilisez le nouveau mot de passe pour obtenir
mysql>
Travaille 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 ce qui suit si votre base de données ne contient aucune donnée OR vous en avez une autre pour restaurer ces données. Vous aurez besoin de connaître le mot de passe root du serveur Ubuntu, mais pas le mot de passe mysql.
Il est fort probable que beaucoup d'entre nous ont installé "mysql_secure_installation", car il s'agit d'une pratique recommandée. Naviguez jusqu'au répertoire bin où existe mysql_secure_installation. Vous pouvez le trouver dans le répertoire/bin sur les systèmes Ubuntu. En réexécutant le programme d'installation, il vous sera demandé si vous souhaitez modifier le mot de passe de la base de données racine.