Maison  >  Article  >  base de données  >  Les invites MySQL de la machine virtuelle connectée localement ne sont pas autorisées à se connecter

Les invites MySQL de la machine virtuelle connectée localement ne sont pas autorisées à se connecter

咔咔
咔咔original
2020-06-30 16:20:54164parcourir

Cet article résoudra le problème selon lequel la connexion locale de Navicat au serveur MySQL distant indique que la connexion n'est pas autorisée

.

1. Problème de restauration

Local Navicat se connecte à la base de données MySQL de la machine virtuelle centos7.3Après avoir confirmé la connexion, une erreur comme celle-ci sera signalée

2. J'ai trouvé le problème

À première vue, ce problème est un problème de connexion à distance, mais pour les nouveaux apprenants, il est probablement difficile pour les partenaires de penser qu'il s'agit d'un problème, Kaka aidera donc à résoudre ce problème étape par étape.

Nous allons d’abord sur le terminal de la machine virtuelle et nous connectons à MySQL.

Exécutez la commande

, puis saisissez le mot de passe pour accéder à MySQLmysql -uroot -p

Exécutez la commande show databases; pour afficher toutes les bases de données actuelles Ce à quoi nous devons principalement faire attention, c'est la bibliothèque mysql, changer de base de données, exécuter la commande use mysql, il y a une base de données dans table des utilisateurs MySQL. Permettez-moi de faire un petit point ici. Dans le terminal, nous avions l'habitude d'exécuter clear pour effacer l'écran, mais l'exécution de clear dans MySQL n'a aucun effet.

La commande clear screen dans le terminal mysql est system clear

D'accord, revenons au sujet, dans le tableau user, nous n'avons besoin que de deux informations, une est hos et l'autre est l'utilisateur. Nous devons exécuter l'instruction de requête pour l'interroger.

Dans l'image ci-dessus, la colonne hôte spécifie l'adresse IP qui permet aux utilisateurs de se connecter. S'il s'agit d'un hôte local, vous ne pouvez vous connecter que localement et vous ne pouvez pas vous connecter à distance.

C'est pourquoi notre navigateur local ne peut pas se connecter à MySQL.

Comme il s'agit d'une machine virtuelle locale et qu'il n'y a aucun problème de sécurité, Kaka définira l'hôte sur %.

% représente un caractère générique, ce qui signifie que toutes les connexions sont autorisées et qu'aucune adresse IP n'est restreinte.

Remarque : dans l'environnement de production, vous ne pouvez pas définir l'hôte sur % pour éviter des problèmes. Cela entraînerait des problèmes de sécurité. Les paramètres spécifiques peuvent être définis en fonction de l'adresse IP de l'environnement de production ; 🎜>Le problème a été trouvé. Ensuite, allez le découvrir.

Exécutez la commande

, remplacez localhost par %, autoriser toutes les adresses IP. connecter.

Vous devez encore actualiser les autorisations iciupdate user set host='%' where user='root';flush privilegesNavitta locale se connecte à nouveau à la base de données. C'est tout à ce stade.

À propos du moment où

est nécessaire à mettre en œuvre. .

flush privilegesCette commande extrait les informations utilisateur ou les autorisations dans les tables d'utilisateurs et de privilèges de la bibliothèque mysql en mémoire.

Lorsque les données utilisateur et les autorisations sont modifiées et que vous souhaitez prendre effet directement sans redémarrer la base de données, vous devez exécuter cette commande.

C'est-à-dire que cette commande n'est applicable que lorsque les données utilisateur et les autorisations utilisateur sont modifiées.

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!

Déclaration:
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