Maison  >  Article  >  développement back-end  >  Que faire si PHP ne parvient pas à se connecter à MongoDB

Que faire si PHP ne parvient pas à se connecter à MongoDB

藏色散人
藏色散人original
2021-06-18 09:58:481843parcourir

La solution à l'échec de PHP pour se connecter à mongodb : créez d'abord un compte de rôle root ; puis créez un userAdmin puis créez un compte de connexion à la base de données et enfin utilisez MongoClient pour vous connecter.

Que faire si PHP ne parvient pas à se connecter à MongoDB

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Que dois-je faire si le lien php MongoDB échoue ?

Solution au problème selon lequel php ne peut pas se connecter à mongodb 3.0

  • Plusieurs rôles couramment utilisés

  • root mongodb plus haute autorité
  • Autorisations de gestion de compte de base de données userAdmin créées par vous-même
  • Autorisations de lecture seule
  • readWrite lecture et écriture
  • blagues rencontrées

J'ai créé un compte pour la base de données, mais PHP ne peut pas se connecter. Je peux me connecter en utilisant Mongo, mais PHP ne peut pas se connecter

  • Posture correcte

Pour des raisons de sécurité, nous accordons souvent aux applications Web les autorisations les plus basses sur la base de données afin de garantir la sécurité de la base de données. Il ne peut être utilisé que pour lire sans écrire

Créez d'abord un compte de rôle root

Après avoir configuré mongodb no auth pour démarrer

use admin

db.createUser({
   user:'root',
   pwd:'root',
   roles:[
      {role:'root',db:'admin'}
   ]})

Créez un userAdmin pour notre nouvelle base de données (test)

use test
db.createUser({
   user:'001say',
   pwd:'001say',
   roles:[
      {role:'userAdmin',db:'test'}
   ]})

Créez un compte de connexion à la base de données

use test
db.auth('001say','001say')
db.createUser({
   user:'say001',
   pwd:'say001',
   roles:[
      {role:'read',db:'test'}
   ]})
De cette façon, vous obtiendrez une autorisation de lecture Le compte say001

peut nécessiter le format suivant lors de la connexion à l'aide de MongoClient

$mongo = new MongoClient("mongodb://name:password@192.168.199.140:27017/test");
Vous devez spécifier la base de données directement dans la connexion, sinon MongoClient se connectera à la base de données admin par défaut. Vos autorisations sont insuffisantes, ce qui entraînera bien entendu un échec de connexion

  • Suivi

La deuxième étape est indispensable, si vous l'utilisez directement. Les comptes créés avec les privilèges root ne peuvent pas se connecter à la base de données de test . Mongodb propose une gestion des autorisations très détaillée, avec des autorisations minimales pour les opérations sur les collections.
Si vous ne parvenez toujours pas à vous connecter, vous aurez peut-être besoin du dernier pilote. pecl

Si vous rencontrez des problèmes similaires, j'espère pouvoir vous aider~~

L'article est purement écrit à la main. S'il y a des erreurs, veuillez me contacter pour le modifier~~Merci
Étude recommandée : "

Tutoriel vidéo PHP

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