Maison > base de données > tutoriel mysql > Introduction détaillée à l'exemple de code sur la façon de changer le mot de passe root de MySQL sous Linux

Introduction détaillée à l'exemple de code sur la façon de changer le mot de passe root de MySQL sous Linux

黄舟
Libérer: 2017-03-16 13:23:44
original
1215 Les gens l'ont consulté

mysql est une base de données que nous avons souvent besoin d'utiliser sous linux ou Windows. Je pense que tout programmeur devrait être familier avec MySQL, mais parfois le cerveau est court-circuité. J'ai soudainement oublié le mot de passe du super utilisateur mysql. À ce stade, je dois changer un nouveau mot de passe. L'article suivant explique comment changer le mot de passe root de mysql sous Linux.

Avant-propos

Cela aurait dû faire plusieurs mois que le service a été déployé sur MySQL, car l'essentiel du travail se fait désormais dans le terminal, donc il y a très peu de connexion, je veux modifier quelque chose aujourd'hui, et du coup j'ai découvert que j'avais complètement oublié le mot de passe de mysql, j'ai parcouru le code et j'ai finalement trouvé le mot de passe de la base de données d'entreprise, mais le mot de passe root était toujours. introuvable et les autorisations n'ont pas pu être modifiées, alors j'ai commencé à parcourir les fosses. J'estime que je les rencontrerai à nouveau dans le futur, je vais donc les compiler et les enregistrer. Les amis qui en ont besoin peuvent venir y jeter un œil.

Paramètres système

Serveur

 $ cat /proc/version
 Linux version 4.8.3-x86_64-linode76 (maker@build) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Oct 20 19:05:39 EDT 2016
 $ lsb_release -a
 No LSB modules are available.
 Distributor ID: Ubuntu
 Description: Ubuntu 16.04.1 LTS
 Release: 16.04
 Codename: xenial
Copier après la connexion

mysql

 mysql> show variables like "%version%";
 +-------------------------+-------------------------+
 | Variable_name  | Value   |
 +-------------------------+-------------------------+
 | innodb_version  | 5.7.16   |
 | protocol_version | 10   |
 | slave_type_conversions |    |
 | tls_version  | TLSv1,TLSv1.1  |
 | version   | 5.7.16-0ubuntu0.16.04.1 |
 | version_comment  | (Ubuntu)  |
 | version_compile_machine | x86_64   |
 | version_compile_os | Linux   |
 +-------------------------+-------------------------+
Copier après la connexion

Solution

Démarrez MySQL en mode sans échec, vous pouvez vous connecter directement en tant que root, puis réinitialiser mot de passe. Voici les étapes spécifiques

Arrêtez le service MySQL en cours d'exécution :

 sudo service mysql stop
Copier après la connexion

Démarrez MySQL en mode sans échec :

 sudo mysqld_safe --skip-grant-tables --skip-networking &
Copier après la connexion

Connectez-vous directement avec root, sans mot de passe requis :

 mysql -u root
Copier après la connexion

Réinitialiser le mot de passe :

 mysql> use mysql;
 mysql> update user set authentication_string=password('password') where user='root';
 mysql> flush privileges;
Copier après la connexion

Quitter mysql

 mysql > quit
Copier après la connexion

Redémarrer mysql

 sudo service mysql restart
Copier après la connexion

Connexion par mot de passe :

 mysql -u root -p
Copier après la connexion
Copier après la connexion

Gestion des exceptions

Une erreur est signalée lors du changement de mot de passe , invitant ERREUR 1054 (42S22 )

Lors de la modification du mot de passe, de nombreux documents sur Internet vous invitent à saisir la commande à modifier :

 mysql> update user set password=PASSWORD("password") where User='root';
Copier après la connexion

Le résultat est une erreur lorsque en utilisant cette commande :

 ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Copier après la connexion

La raison est qu'à partir de mysql 5.7, le champ mot de passe a été remplacé par ignition_string Vous pouvez utiliser la commande suivante pour le modifier.

Après avoir modifié le mot de passe, la connexion à MySQL échoue et affiche l'ERREUR 2
 update user set authentication_string=password('password') where user='root';
Copier après la connexion
002

(HY000)Après avoir modifié le mot de passe et redémarré, je ne peux pas me connecter à MySQL. Il demande

après avoir recherché
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Copier après la connexion
Le retour est dû au fait que j'ai

installé plusieurs versions de MySQL, et le problème peut être résolu en exécutant les commandes suivantes dans l'ordre . Afficher le mysql en cours d'exécution

tuer le mysql en cours d'exécution

 ps -A|grep mysql
Copier après la connexion

Afficher le mysqld en cours d'exécution

 sudo pkill mysql
Copier après la connexion

tuer le mysqld en cours d'exécution

 ps -A|grep mysqld
Copier après la connexion

tuer le mysqld en cours d'exécution

 sudo pkill mysqld
Copier après la connexion

Redémarrer MySQL

 service mysql restart
Copier après la connexion

Connectez-vous à MySQL

 mysql -u root -p
Copier après la connexion
Copier après la connexion

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal