Maison  >  Article  >  base de données  >  Résoudre le problème selon lequel la base de données MySQL n'est pas accessible par d'autres adresses IP

Résoudre le problème selon lequel la base de données MySQL n'est pas accessible par d'autres adresses IP

巴扎黑
巴扎黑original
2017-09-04 15:54:071419parcourir

Cet article vous présente principalement la solution au problème selon lequel la base de données MySQL n'est pas accessible par d'autres adresses IP. L'article la présente en détail à travers un exemple de code. Il a une certaine valeur de référence et d'apprentissage pour les études ou le travail de chacun. qui en a besoin peut suivre Apprenons avec l’éditeur.

Avant-propos

C'est toujours le projet mentionné précédemment. L'environnement est actuellement prêt. Un problème a été découvert lors de la phase de préparation et de vérification du projet. , et il a été appliqué à partir du niveau supérieur. J'ai entré l'authentification pour accéder à l'application, mais elle a attendu. J'ai entré le nom d'utilisateur et le mot de passe corrects, mais je n'ai pas pu y accéder. Il semble qu'il n'y ait aucun moyen d'accéder à la connexion à la base de données.

Le port après le déploiement de MySQL est généralement 3306. J'ai essayé de faire un ping et un telnet sur le port 3306 et j'ai constaté que l'IP peut être pingée, mais le port 3306 ne peut pas être connecté par telnet, et une erreur comme celle-ci est donnée :


ERROR 1130: Host *.*.*.* is not allowed to connect to MySQL

Après avoir vu cette erreur, j'ai vérifié en ligne et j'ai découvert qu'il existe fondamentalement de nombreuses solutions, mais pourquoi dois-je écrire spécifiquement à ce sujet ?

La réponse est : Il existe de nombreuses solutions pour MySQL 5.6 sur Internet. Dans la version 5.7, la solution à cette erreur est la suivante :

1. Dans Après vous être connecté à MySQL pour la première fois, vous devez changer le mot de passe root à temps. Il y a une différence entre 5.6 et 5.7, c'est-à-dire que le champ du mot de passe dans 5.6 est : mot de passe, mais dans la version 5.7, ce champ est annulé et remplacé par : champ chaîne_authentification .

La méthode de modification correcte est :



update user set authentication_string=password("xxxx") where user = "root";
flush privileges;
2 Après modification, nous utilisons la commande use mysql pour passer à la bibliothèque mysql. , notez que cette bibliothèque mysql existe réellement dans mysql et qu'il s'agit d'une bibliothèque qui stocke certaines informations liées à la base de données.


Commande :

use mysql;

3. Recherchez la table des utilisateurs et exécutez la commande suivante :



grant all privileges on *.* to 'root'@'%' identified by 'JLwg!2017' with grant option;
Il existe de nombreuses méthodes de modification pour cela sur Internet, il devrait y en avoir 4 au total, et j'en utilise une.

Le sens de cette commande est de modifier les autorisations d'accès de l'utilisateur root afin que toutes les IP puissent accéder à cet utilisateur. De cette façon, notre application peut accéder à ce mysql depuis l'IP externe, sinon seul localhost peut accéder. est très gênant.

4. Enfin, exécutez la commande

pour redémarrer le service Mysql, et l'application se connecte avec succès flush privileges;

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