Comment réinitialiser ou modifier le mot de passe root MySQL?

179

Comment changer le mot de passe racine MySQL et le nom d'utilisateur sur le serveur ubuntu? Dois-je arrêter le service mysql avant de définir des modifications?

J'ai également une configuration phpmyadmin, est-ce que phpmyadmin sera mis à jour automatiquement?

asm234
la source
Si vous n'avez pas besoin des données, vous pouvez "réinitialiser" le mot de passe en supprimant mysql dans son intégralité: stackoverflow.com/questions/10853004/ ... puis en l'installant à nouveau (il vous demandera le "nouveau" mot de passe root) FWIW: )
rogerdpack
Connaissez-vous le mot de passe root MySQL?
Franck Dernoncourt
2
dans mysql-server-5.7, ces méthodes ne fonctionnent pas. utilisez 'sudo' sans mot de passe comme mentionné dans askubuntu.com/a/848504
Pragalathan M

Réponses:

225

Définissez / modifiez / réinitialisez le mot de passe racine MySQL sur Ubuntu Linux. Entrez les lignes suivantes dans votre terminal.

  1. Arrêtez le serveur MySQL: sudo /etc/init.d/mysql stop
  2. Démarrez la mysqldconfiguration:sudo mysqld --skip-grant-tables &

    Dans certains cas, vous devez créer le /var/run/mysqldpremier:

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. Courir: sudo service mysql start
  4. Connectez-vous à MySQL en tant que root: mysql -u root mysql
  5. Remplacez YOURNEWPASSWORDpar votre nouveau mot de passe:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;

Remarque: sur certaines versions, si la passwordcolonne n'existe pas, vous pouvez essayer:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Remarque: cette méthode n'est pas considérée comme le moyen le plus sûr de réinitialiser le mot de passe, cependant, cela fonctionne.

Références:

  1. Définir / modifier / réinitialiser le mot de passe racine MySQL sur Ubuntu Linux
  2. Comment réinitialiser le mot de passe root
Christian Mark
la source
20
Bien sûr, après ce point, vous devrez tuer le processus de serveur temporaire et sans mot de passe que vous avez commencé à l'étape 2. peut-être utiliser sudo killall -9 mysqld? puis sudo service mysql startredémarrer le démon normal ...
Lambart
7
La méthode de cette réponse n'est nécessaire que pour réinitialiser un mot de passe root MySQL que vous ne connaissez pas [source ]. Si vous le connaissez, l' SET PASSWORDinstruction MySQL est faite pour vous.
tanius
53
J'ai suivi jusqu'à la 3ème étape et je ne peux pas me connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock' (2) lorsque je
me
12
dans certains cas, vous devez également exécuter mkdir /var/run/mysqldet chown mysql: /var/run/mysqldentre les étapes 1 et 2
Neville Nazerane
9
l'étape 3 n'a pas fonctionné pour moi avec Ubuntu 18.04. Je viens de me connecter en utilisant sudo mysql
itsols
121

La seule méthode qui a fonctionné pour moi est celle décrite ici (j'utilise ubuntu 14.04). Par souci de clarté, voici les étapes que j'ai suivies:

  1. sudo vim /etc/mysql/my.cnf
  2. Ajoutez les lignes suivantes à la fin:

    [mysqld]
    
    sauter les tables de subvention
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- Regardez en haut pour déterminer si la colonne de mot de passe est appelée password ou authentication_string

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - Utilisez la colonne de mot de passe appropriée ci-dessus

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. Supprimez les lignes ajoutées à l'étape 2 si vous souhaitez conserver vos normes de sécurité.

  12. sudo service mysql restart

Pour référence: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

Narko
la source
8
Enfin, cela a fonctionné pour moi! J'exécute MySQL 5.7.18 sur Ubuntu 16.04. J'ai essayé dpkg-reconfigure, la réponse d'Anvesh, la réponse de Christian Mark et même les instructions sur la page d'aide de MySQL.
mbuc91
9
J'ai dû exécuter UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root'; au lieu de la ligne 5.
mbuc91
2
La seule solution qui a fonctionné pour moi. J'ai Ubuntu 17.04 et mysql 5.7
Mohamed
1
Malheureusement, cela ne fonctionne pas pour moi mysql 5.7.22 ubuntu 18.04
Mario
1
Tout fonctionnait comme prévu. Mais lorsque vous essayez de vous connecter, il dit Entrez le mot de passe: ERREUR 1698 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost'
Dipak Chatterjee
101

Le moyen officiel et simple de réinitialiser le mot de passe root sur un serveur ubuntu ...

Si vous êtes le 16.04, 14.04, 12.04:

sudo dpkg-reconfigure mysql-server-5.5

Si vous êtes le 10.04:

sudo dpkg-reconfigure mysql-server-5.1

Si vous n'êtes pas sûr de la version de mysql-server installée, vous pouvez essayer:

dpkg --get-selections | grep mysql-server

Notes mises à jour pour mysql-server-5.7

Notez que si vous utilisez mysql-server-5.7, vous ne pouvez pas utiliser la méthode plus simple dpkg-reconfigure illustrée ci-dessus.

Si vous connaissez le mot de passe, connectez-vous et exécutez ceci:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

Vous pouvez également utiliser les éléments suivants:

sudo mysql_secure_installation

Cela vous posera une série de questions sur la sécurisation de votre installation (fortement recommandé), y compris si vous souhaitez fournir un nouveau mot de passe root.

Si vous ne connaissez PAS le mot de passe root, reportez - vous à cet article centré sur Ubuntu sur le processus .

Voir pour plus d'informations:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html

user12345
la source
3
Fonctionne même lorsque vous avez perdu le mot de passe root MySQL d'origine - bien.
tanius
4
Fonctionne avecVer 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage
A également travaillé avec mysql v 5.0 ...sudo dpkg-reconfigure mysql-server-5.0
dsghi
4
sudo dpkg-reconfigure mysql-server-5.7 ne fonctionne pas pour Ubuntu 18.04 pour réinitialiser le mot de passe root. Un autre remplaçant?
Jagdeep Singh
Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb
77

Ce qui a fonctionné pour moi (Ubuntu 16.04, mysql 5.7):

Arrêtez MySQL

sudo service mysql stop

Créez un répertoire de services MySQL.

sudo mkdir /var/run/mysqld

Donnez à l'utilisateur MySQL l'autorisation d'écrire dans le répertoire de service.

sudo chown mysql: /var/run/mysqld

Démarrez MySQL manuellement, sans vérification des autorisations ni mise en réseau.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Sur une autre console, connectez-vous sans mot de passe.

mysql -uroot mysql

Ensuite:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

Désactivez MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Démarrez le service MySQL normalement.

sudo service mysql start
fabriciofreitag
la source
Les autres moyens n'ont pas fonctionné pour moi mais celui-ci (merci!), Ou vous pouvez également aller ici rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung
10
Très utile ! Dans mon cas particulier (Ubuntu 18.04 LTS), j'ai dû remplacer l'hôte '%' par 'localhost'
FredericK
Cela n'a pas fonctionné dans ubuntu 18.04. Mais cela a fonctionné avec ce petit changement décrit ici stackoverflow.com/a/53385753/1591143
Aleksandar Popovic
76

Je partage la solution finale étape par étape pour réinitialiser un mot de passe MySQL dans Linux Ubuntu.

Référence tirée du blog (dbrnd.com)

Étape 1: Arrêtez le service MySQL.

sudo stop mysql

Étape 2: Tuez tous les mysqld en cours d'exécution.

sudo killall -9 mysqld

Étape 3: Démarrer mysqld en mode sans échec.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Étape 4: Démarrez le client mysql

mysql -u root

Étape 5: Après une connexion réussie, veuillez exécuter cette commande pour modifier un mot de passe.

FLUSH PRIVILEGES;

Étape 6: Vous pouvez mettre à jour le mot de passe root mysql.

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

Remarque : sur MySQL 5.7, la colonne Passwordest appeléeauthentication_string .

Étape 7: Veuillez exécuter cette commande.

FLUSH PRIVILEGES;
Anvesh
la source
En effet. En outre, il est plus proche de la documentation officielle . Au cas où vous rencontriez ceci: "ERREUR 1524 (HY000): le plug-in 'auth_socket' n'est pas chargé", jetez un œil à stackoverflow.com/questions/37879448/…
Wtower
J'ai également dû changer mysql.user.plugin de 'auth_socket' à 'mysql_native_password' pour mon utilisateur root avec l'hôte de 'localhost'.
Brandon
1
J'ai dû utiliser "sudo /etc/init.d/mysql stop" pour arrêter le service et "UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root';" pour mettre à jour le mot de passe
L Bahr
1
_string authentifié aidé
Faiyaz Md Abdul
42

J'ai rencontré des problèmes avec ubuntu 18.04 et mysql 5.7, c'est la solution

Essayez de redémarrer mysql-server avant d'exécuter les commandes

sudo service mysql restart

MYSQL-SERVER> = 5,7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

SERVEUR MYSQL <5,7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
Jerfeson Guerreiro
la source
1
Merci, j'utilise également Ubuntu 18.04 ici et la MYSQL-SERVER >= 5.7version est la seule chose qui a réellement résolu le problème
Miguelgraz
1
C'est celui qui a fonctionné dans l'installation mysql d'Ubuntu 18.04. MYSQL-SERVER >= 5.7version pour être précis.
Sathish Manohar
34

Modifiez le mot de passe root MySQL.

Cette méthode expose le mot de passe à l'historique de la ligne de commande, ces commandes doivent être exécutées en tant que root.

  1. Connectez-vous via l'outil de ligne de commande mysql:

    mysql -uroot -poldpassword
  2. Exécutez cette commande:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

ou

  1. Exécutez cette commande, qui définit un mot de passe pour l'utilisateur actuel ('root' dans ce cas):

    SET PASSWORD = PASSWORD ('nouveau mot de passe');

faisalbhagat
la source
26

Au début, exécutez cette commande:

sudo mysql

et ensuite vous devriez vérifier quelle méthode d'authentification de vos comptes d'utilisateurs MySQL utilise. Alors exécutez cette commande

SELECT user,authentication_string,plugin,host FROM mysql.user;

maintenant vous pouvez déjà voir quelque chose comme ça:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

dans le tableau ci-dessus, vous pouvez voir que l'état de tous vos comptes d'utilisateurs mysql et si vous avez défini un mot de passe pour le compte root avant de le voir mysql_native_passworddans la colonne du plugin à la place auth_socket. Dans l'ensemble, pour changer votre mot de passe root, vous devez exécuter:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Assurez-vous de remplacer le mot de passe par un mot de passe fort de votre choix. Ensuite, pour recharger votre serveur afin de mettre vos nouvelles modifications en vigueur, exécutez ceci;

FLUSH PRIVILEGES;

Vérifiez donc à nouveau les méthodes d'authentification utilisées par votre mysql, par cette commande:

SELECT user,authentication_string,plugin,host FROM mysql.user;

et maintenant la sortie est:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

comme vous pouvez le voir dans le tableau des subventions de votre compte root mysql_native_password . maintenant vous pouvez quitter le shell MYSQL

exit;

Voilà, il vous suffit de redémarrer mysql en sudo service mysql restart. Vous pouvez maintenant vous connecter facilement à mysql en tant que compte root avec votre mot de passe.

Amir Karim
la source
Je pense que cela vient de DigitalOcean, qui était la seule solution qui fonctionnait pour moi sur Ubuntu 18.04 fonctionnant sur Virtual Box
Kemal
cela fonctionne parfaitement dans ubuntu 18.04. Merci.
mahfuz le
12

Si vous souhaitez changer le mot de passe root MySQL, dans un terminal entrez:

sudo dpkg-reconfigure mysql-server-5.5

Le démon MySQL sera arrêté et vous serez invité à entrer un nouveau mot de passe.

user2206324
la source
1
C'est une bien meilleure façon de le faire. Je n'ai pas pu exécuter les commandes précédentes à cause d'une erreur mysql ...
Andy
sudo dpkg-reconfigure mysql-server-5.7 sur ubuntu 16.04
Nick Barrett
2
J'ai couru sudo dpkg-reconfigure mysql-server-5.7sur Ubuntu 16.04, il n'a pas été invité à entrer un nouveau mot de passe.
Franck Dernoncourt
Si ça dit mysql-server is broken or not fully installed, on peut utiliser sudo apt purge mysql*etsudo apt install mysql-server
Pavel
12

Cela fonctionne comme du charme, je l'ai fait pour Ubuntu 16.04. Crédit complet au lien ci-dessous car je l'ai obtenu à partir de là. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts[1]

Arrêtez MySQL

sudo service mysql stop

Créez un répertoire de services MySQL. sudo mkdir / var / run / mysqld

Donnez à l'utilisateur MySQL l'autorisation d'écrire dans le répertoire de service.

sudo chown mysql: /var/run/mysqld

Démarrez MySQL manuellement, sans vérification des autorisations ni mise en réseau.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Connectez-vous sans mot de passe.

mysql -uroot mysql

Mettez à jour le mot de passe de l'utilisateur root. assurez-vous qu'au moins le compte root est mis à jour par la requête ci-dessous. faites une sélection et vérifiez les valeurs existantes si vous le souhaitez

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

Désactivez MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Démarrez le service MySQL normalement.

sudo service mysql start
lézard
la source
11
  1. Arrêtez MySQL sudo service mysql stop

  2. Créez un répertoire de services MySQL. sudo mkdir / var / run / mysqld

  3. Donnez à l'utilisateur MySQL l'autorisation d'écrire dans le répertoire de service. sudo chown mysql: / var / run / mysqld

  4. Démarrez MySQL manuellement, sans vérification des autorisations ni mise en réseau. sudo mysqld_safe --skip-grant-tables --skip-networking &

5. Connectez-vous sans mot de passe. mysql -uroot mysql

6.Mettez à jour le mot de passe de l'utilisateur root.

UPDATE mysql.user SET authentication_string = PASSWORD ('YOURNEWPASSWORD'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; SORTIE;

  1. Désactivez MySQL. arrêt sudo mysqladmin -S /var/run/mysqld/mysqld.sock

  2. Démarrez le service MySQL normalement. sudo service mysql start

Rahul Raveendran
la source
1
Salut, cette réponse fonctionne pour moi, mais j'ai dû utiliser une autre commande: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';sans AND Host='%'. Merci!
David Corral
10

Cette solution appartient à la version précédente de MySQL. En vous connectant à MySQL à l'aide de l'authentification par socket, vous pouvez le faire.

sudo mysql -u root

Ensuite, la commande suivante pourrait être exécutée.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Les détails sont disponibles ici .

Huseyin
la source
1
Je n'ai pas pu me connecter en tant que sudo mysql -u rootmais j'ai pu le faire en tant que sudo mysqlet exécuter la ALTER USERcommande.
itsols
J'obtenais cette erreur: "Votre mot de passe ne répond pas aux exigences de la politique actuelle". J'ai pu corriger cela ici: stackoverflow.com/a/43094873/9073437 . Après avoir défini une politique de mot de passe modifiée, tout a bien fonctionné.
Grandtour
10

C'est la solution pour moi. Je travaille chez Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373

Mais est important ce changement dans la dernière étape:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
Juanitourquiza
la source
Mon Dieu! Merci beaucoup! C'est la seule façon qui fonctionnait dans mon cas. Oubliez ce stupide script d'installation sécurisé car il a gardé mon 5.7 fraîchement installé largement ouvert aux utilisateurs sans jamais demander de mot de passe ... si Linux / Ubuntu est destiné aux utilisateurs soucieux de la sécurité, pourquoi est-il si difficile de protéger une application cruciale comme le serveur MySQL ?
Thomas Urban
7

Pour Ubuntu 18.04 et mysql version 14.14 Distrib 5.7.22, suivez l'étape ci-dessous pour réinitialiser le mot de passe mysql.

Étape 1

sudo systemctl stop mysql

Étape 2

sudo systemctl edit mysql

Cette commande ouvrira un nouveau fichier dans l'éditeur nano, que vous utiliserez pour modifier les remplacements de service de MySQL. Ceux-ci modifient les paramètres de service par défaut pour MySQL. Ce fichier sera vide, alors ajoutez le contenu suivant:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Étape 3

sudo systemctl daemon-reload
sudo systemctl start mysql

Étape 4

sudo mysql -u root

Étape 5

FLUSH PRIVILEGES;

Étape 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

Étape 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

Étape 8

sudo systemctl revert mysql

et enfin

sudo systemctl restart mysql

Profitez maintenant

Masum Billah
la source
Je pense que vous avez manqué du contenu à l'étape 2. Il est incomplet.
Lucas Mendes Mota Da Fonseca
6

Faisant écho au commentaire de rogerdpack: si vous ne connaissez pas le mot de passe root MySQL et que vous ne vous souciez pas des données / paramètres MySQL, vous pouvez le réinstaller et réinitialiser le mot de passe root comme suit:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

Lors de l'installation, vous pouvez choisir le mot de passe root:

entrez la description de l'image ici

Franck Dernoncourt
la source
2
J'aurais aimé commencer ici au lieu de perdre une heure à me cogner la tête à essayer de réinitialiser le mot de passe.
Eric Seastrand
3

Si vous connaissez votre mot de passe actuel, vous n'avez pas besoin d'arrêter le serveur mysql. Ouvrez le terminal ubuntu. Connectez-vous à mysql en utilisant:

mysql - username -p

Tapez ensuite votre mot de passe. Cela vous mènera dans la console mysql. À l'intérieur de la console, tapez:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Puis effacez les privilèges en utilisant:

> flush privileges;

Ensuite, vous avez terminé.

Peter Mutisya
la source
2

Lorsque vous utilisez MySQL PASSWORD()sur le système sur lequel vous souhaitez changer le mot de passe, cela peut provoquer l'apparition du mot de passe dans un journal MySQL en texte clair [ source ]. Les garder, leurs sauvegardes, etc. aussi sécurisés que le mot de passe me semble un cauchemar, alors j'aime plutôt le faire comme suit:

  1. Sur votre ordinateur local , exécutez ceci avec votre mot de passe:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    Notez l'espace devant pour l'empêcher d'apparaître dans l'historique de bash (pour d'autres distributions qu'Ubuntu, cela pourrait fonctionner différemment - source ).

  2. Sur votre machine serveur, exécutez la commande suivante pour changer son mot de passe racine MySQL (remplacez-le myhashpar le hachage de votre mot de passe tel qu'imprimé par la première commande):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. En option, soyons un peu paranoïaques: sur votre machine locale, effacez l'écran de votre terminal avec clearet purgez le scrollback de votre terminal virtuel, pour masquer le mot de passe en clair apparaissant dans la commande ci-dessus.

Tanius
la source
2

Pour mettre à jour le mot de passe de l'utilisateur Mysql "root", vous devez garder à l'esprit que vous aurez besoin des autorisations de super utilisateur pour cela. Si vous disposez de privilèges de super utilisateur, essayez les commandes suivantes:

MySQL 5.7.6 et versions ultérieures

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 et versions antérieures

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
alvaropaco
la source
2

Vous n'avez pas besoin de tout ça. Connectez-vous simplement:

mysql -u root -p

Modifiez ensuite le mot de passe de l'utilisateur actuel comme mysql>invite:

mysql> set password=password('the_new_password');
mysql> flush privileges;
mprivat
la source
1
C'est le moyen le plus simple! Cela fonctionne pour moi avec mysql 5.7.21-0ubuntu0.17.10.1
Sergio Belevskij
2

La plupart des réponses à ce sujet sont dépassées; deux changements majeurs sont survenus dans MySQL jusqu'à l'écriture de cette réponse:

1- le champ 'Password' de la table user a été remplacé par la colonne 'authentication_string'.

2- la fonction de cryptage 'Password': PASSWORD ("of some text") est obsolète.

Veuillez consulter ce lien pour plus d' informations: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Elie Asmar
la source
1

Au lieu de réinitialiser le mot de passe, il y a un contournement sur l'ordinateur local si vous avez configuré phpmyadminpour vous connecter sans donner le mot de passe ou le nom d'utilisateur. Vérifiez ceci en démarrant mysql, apacheetc. J'ai xamppinstallé sur ma machine locale. Donc, démarrer le xampp démarrera tous les services nécessaires. http://localhost/phpmyadminJe vais maintenant me montrer toutes les bases de données. Cela confirme que vous avez enregistré le nom d'utilisateur et le mot de passe dans le fichier de configuration de phpmyadmin qui se trouve dans l' phpmyadminemplacement d'installation. Si vous avez xamppinstallé le phpmyadmindossier se trouve dans le dossier racine de l' xamppinstallation. Recherchez le mot passworddans le config.inc.phpfichier. Vous y trouverez les fichiers password et username.

joseph
la source
1

Vous pouvez facilement changer le mot de passe mysql s'il est déployé sur xampp via l'interface graphique phpadmin fournie.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
Mohd Arshil
la source
1

pour mysql 5.6, cette commande fonctionne et vous pouvez définir le mot de passe via l'assistant:

sudo dpkg-reconfigure mysql-server-5.6
MSS
la source
J'ai essayé mais ça ne fonctionne pas .. J'obtiens cette erreur ci-dessous .. pourriez-vous s'il vous plaît aider? Cette installation de MySQL est déjà mise à jour vers la version 5.7.21, utilisez --force si vous avez encore besoin d'exécuter mysql_upgrade
Vijaysinh Parmar
1

Vous pouvez essayer ces quelques étapes pour réinitialiser le mot de passe root de mysql 5.7:

Arrêter le service Mysql 1er

sudo /etc/init.d/mysql stop 

Connectez-vous en tant que root sans mot de passe sudo mysqld_safe --skip-grant-tables&

Après vous être connecté au terminal mysql, vous devriez avoir plus besoin d'exécuter des commandes:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Après avoir redémarré votre serveur mysql Si vous rencontrez toujours une erreur, vous devez visiter: Réinitialiser le mot de passe root MySQL 5.7 Ubuntu 16.04

Inderpal Singh
la source
1

Vous pouvez utiliser cette commande:

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

après cela, veuillez utiliser flush:

FLUSH PRIVILEGES;
Rahul Karande
la source
1

Définition du mot de passe MySQL

  1. arrêter le service de base de données MySQL

sudo /etc/init.d/mysql stop

  1. créer un nouveau répertoire mysqld

sudo mkdir / var / run / mysqld /

  1. donner un accès utilisateur mysql

sudo chown mysql / var / run / mysqld /

  1. démarrer MySQL en mode sans échec ...

sudo mysqld_safe --skip-grant-tables &

  1. se connecter au serveur de base de données sans mot de passe

sudo mysql -u racine

  1. utiliser la base de données mysql par défaut

utilisez mysql;

  1. changer le mot de passe root

update user set authentication_string=PASSWORD("New_Passwore_Here") where Utilisateur = 'root';

  1. Enregistrez les modifications

    privilèges de vidage; sortie;

  2. arrêtez MySQL safe_mode et démarrez le service par défaut de MySQL

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start

  1. se reconnecter à la base de données MySQL en utilisant le nouveau mot de passe root

sudo mysql -u racine -p

*** Source: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/

Viraj
la source
1

Si vous connaissez le mot de passe des utilisateurs «root», connectez-vous à mysql avec ces informations d'identification. Exécutez ensuite la requête suivante pour mettre à jour le mot de passe.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Udara Seneviratne
la source
0

lors de la modification / réinitialisation du mot de passe MySQL, les commandes suivantes répertoriées ci-dessus n'ont pas aidé. J'ai trouvé qu'il était inutile d'entrer dans le terminal et d'utiliser ces commandes. utilisez plutôt la commande sudo stop tout. DELETE SYSTEM 32 pour Windows si cela vous aide.

Roche
la source
1
La question concerne le ubuntusystème d' exploitation et non les fenêtres. Qu'entendez-vous par DELETE SYSTEM 32 pour Windows ?
EhsanT
0

Pour réinitialiser ou modifier le mot de passe, entrez sudo dpkg-reconfigure mysql-server-X.X(XX est la version de mysql que vous avez installée, c'est-à-dire 5.6, 5.7), puis vous afficherez un écran dans lequel vous devrez définir le nouveau mot de passe, puis à l'étape suivante, confirmez le mot de passe et attendez un moment. C'est tout.

Gaurav Paliwal
la source
0

J'ai dû emprunter cette voie sur Ubuntu 16.04.1 LTS. C'est un peu un mélange de certaines des autres réponses ci-dessus - mais aucune d'elles n'a aidé. J'ai passé une heure ou plus à essayer toutes les autres suggestions du site Web MySql à tout ce qui se trouve sur SO, je l'ai finalement fait fonctionner avec:

Remarque: alors qu'il montrait Entrez le mot de passe pour l'utilisateur root, je n'avais pas le mot de passe d'origine, je viens donc d'entrer le même mot de passe pour être utilisé comme nouveau mot de passe.

Remarque: il n'y avait pas de /var/log/mysqld.log uniquement /var/log/mysql/error.log

Notez également que cela n'a pas fonctionné pour moi:
sudo dpkg-reconfigure mysql-server-5.7

Pas plus que:
sudo dpkg-reconfigure --force mysql-server-5.5

Créer un répertoire de service MySQL.
sudo mkdir /var/run/mysqld

Donnez à l'utilisateur MySQL l'autorisation d'écrire dans le répertoire de service.
sudo chown mysql: /var/run/mysqld

Ensuite:

  1. tuer le pid mysqld actuel
  2. lancez mysqld avec sudo / usr / sbin / mysqld &
  3. run / usr / bin / mysql_secure_installation

    Sortie de mysql_secure_installation

    root @ monServeur: ~ # / usr / bin / mysql_secure_installation

    Sécurisation du déploiement du serveur MySQL.

    Entrez le mot de passe de l'utilisateur root:

    VALIDATE PASSWORD PLUGIN peut être utilisé pour tester les mots de passe et améliorer la sécurité. Il vérifie la force du mot de passe et permet aux utilisateurs de définir uniquement les mots de passe suffisamment sécurisés. Souhaitez-vous configurer le plugin VALIDATE PASSWORD?

    Appuyez sur y | Y pour Oui, sur toute autre touche pour Non: non Utilisation du mot de passe existant pour root. Changer le mot de passe pour root? ((Appuyez sur y | Y pour Oui, n'importe quelle autre touche pour Non): y

    Nouveau mot de passe:

    Entrez à nouveau le nouveau mot de passe: Par défaut, une installation MySQL a un utilisateur anonyme, permettant à quiconque de se connecter à MySQL sans avoir à avoir un compte utilisateur créé pour eux. Ceci est uniquement destiné à des tests et à rendre l'installation un peu plus fluide. Vous devez les supprimer avant de passer dans un environnement de production.

    Supprimer les utilisateurs anonymes? (Appuyez sur y | Y pour Oui, sur toute autre touche pour Non): y Succès.

    Normalement, root ne devrait être autorisé à se connecter qu'à partir de 'localhost'. Cela garantit que quelqu'un ne peut pas deviner le mot de passe root du réseau.

    Interdire la connexion root à distance? (Appuyez sur y | Y pour Oui, sur toute autre touche pour Non): y Succès.

    Par défaut, MySQL est livré avec une base de données nommée «test» à laquelle tout le monde peut accéder. Ceci est également destiné uniquement à des tests et doit être supprimé avant de passer à un environnement de production.

    Supprimer la base de données de test et y accéder? (Appuyez sur y | Y pour Oui, n'importe quelle autre touche pour Non): y

    • Suppression de la base de données de test ... Succès.

    • Suppression des privilèges sur la base de données de test ... Succès.

    Le rechargement des tables de privilèges garantira que toutes les modifications apportées jusqu'à présent prendront effet immédiatement.

    Recharger les tables de privilèges maintenant? (Appuyez sur y | Y pour Oui, sur toute autre touche pour Non): y Succès.

    Terminé!

JGlass
la source