Ce chapitre vous présentera comment créer rapidement votre propre base de données avec mongodb. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Installation de mongoddb
Installer localement
directement via le site officiel site web Téléchargez le package compressé correspondant à la machinemongodb
Installer sur le serveur cloud (système centos)
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.9.tgztar zxvf mongodb-linux-x86_64-3.2.6.tgz mv mongodb-linux-x86_64-3.2.6.tgz mongodb cd mongodb
Veuillez télécharger la version correspondante en fonction de votre système~
Configuration de l'environnement et démarrer le serveur
Dans le répertoire des fichiers Créez un dossier pour stocker les données. Le répertoire général est /usr/local/mongodb/data/db/. Démarrez mongodb en exécutant la commande
./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest
Voici quelques paramètres à mettre en évidence. . Mongod vous aidera avec mongodb. La prise en charge de la ligne de commande peut être démarrée. Si nécessaire, vous pouvez modifier /etc/profile pour entrer dans l'environnement global, qui correspond au répertoire de données que vous avez créé. --rest est un support graphique
Le chemin par défaut de mongodb est //localhost:27017
. /bin/mongo peut ouvrir le shell
Commandes communes :
#查询所有数据库 show dbs; #删除当前使用数据库 db.dropDatabase(); #克隆主机数据 db.cloneDatabase(“127.0.0.1”); #修复当前数据库 db.repairDatabase(); #查看当前使用的数据库 db.getName(); #显示当前db状态 db.stats(); #查看当前db的链接机器地址 db.version();
Déployer l'environnement mongodb sur le serveur cloud
Le cloud est très populaire actuellement, de nombreuses personnes choisissent d'utiliser des serveurs cloud pour déployer leurs projets. Voici une introduction à la configuration mongodb dans le cloud.
./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest
Lors du déploiement d'une base de données sur un serveur cloud, elle doit s'exécuter en arrière-plan. Lorsque j'ai utilisé pour la première fois le plug-in centos Forever, j'ai découvert que la base de données ne pouvait pas être exécutée en arrière-plan. Après avoir vérifié les informations, j'ai découvert qu'il existe une commande officielle --fork pour démarrer le service en arrière-plan --logpath --logappend pour ajouter un journal au service en arrière-plan. L'effet restant est le même que ci-dessus.
Rendre la base de données plus intuitive
Les données denses ne sont-elles pas laides ? Vous vous sentez mal ? En ce moment, nous avons besoin d'un plug-in pour embellir la base de données
Il en existe de nombreux en ligne tels que mongovue et adminmongo. Vous pouvez les rechercher ou les consulter sur Github.
Ce qui suit est le cryptage de la base de données. J'ai tiré les leçons de l'expérience et j'ai mis à jour le processus de cryptage après avoir été attaqué en ligne.
Ajouter un super administrateur
Tout d'abord, exécutez votre base de données et exécutez l'opération shell après succès.
> use admin > db.createUser( { user: "your name", pwd: "your pwd", roles: [ { role: "root", db: "admin" } ] } ) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }
root signifie super autorisations, créant ainsi un compte avec des super autorisations. Vous pouvez afficher les utilisateurs avec la commande suivante.
[Téléchargement image_088895.png .]
db.getUsers()
Rôle de base de données MongoDB
le rôle fait référence au rôle, gestion Pour contrôler les autorisations de la base de données, le premier utilisateur est de préférence l'utilisateur root, qui peut effectuer n'importe quelle opération
Il est préférable de créer un utilisateur avec les autorisations root pour l'initialisation. , toute opération nécessite des autorisations pour être exécutée. Vous ne devez pas démarrer directement le mode d'exécution en arrière-plan avec auth, sinon vous n'aurez pas le pouvoir de fermer la base de données.
Read : permet à l'utilisateur de lire la base de données spécifiée
readWrite : permet à l'utilisateur de lire et d'écrire la base de données spécifiée
dbAdmin : permet aux utilisateurs d'effectuer des fonctions de gestion dans la base de données spécifiée, telles que la création d'index, la suppression, l'affichage de statistiques ou l'accès à system.profile
userAdmin : permet utilisateurs pour écrire dans la collection system.users, vous pouvez créer, supprimer et gérer des utilisateurs dans la base de données spécifiée
clusterAdmin : disponible uniquement dans la base de données admin, donnant à l'utilisateur des droits d'administration à tous fonctions liées au partitionnement et aux jeux de réplicas.
readAnyDatabase : uniquement disponible dans la base de données admin, donnant à l'utilisateur des autorisations de lecture sur toutes les bases de données
readWriteAnyDatabase : uniquement disponible dans la base de données admin, donnant à l'utilisateur des autorisations de lecture et d'écriture pour toutes les bases de données de l'utilisateur
userAdminAnyDatabase : uniquement disponible dans la base de données admin, accordez des autorisations userAdmin pour toutes les bases de données à l'utilisateur
dbAdminAnyDatabase : uniquement disponible dans la base de données admin, donnant à l'utilisateur dbAdmin les autorisations sur toutes les bases de données.
root : disponible uniquement dans la base de données admin. Super compte, super autorisations
Activer le mode d'authentification
Le cryptage ne peut être démarré qu'après la création du super administrateur. base de données, sinon même vous n'aurez pas le droit d'exploiter la base de données.
//后台模式需要在shell中关闭之前的普通模式数据库,输入以下命令 > use admin > db.shutdownServer() //终端 启动加密数据库 --auth $ ./bin/mongod --fork --dbpath=/root/mongodb/db/ --logpath=/root/mongodb/log/error.log -logappend --auth //通过命令运行数据库 ,在你的运行命令加上后缀 --auth,这样就启动了加密数据库 ,再次执行数据库操作 > show dbs 2017-09-23T14:09:58.922+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }", "code" : 13, "codeName" : "Unauthorized" } : _getErrorWithCode@src/mongo/shell/utils.js:25:13 Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1 shellHelper.show@src/mongo/shell/utils.js:769:19 shellHelper@src/mongo/shell/utils.js:659:15 @(shellhelp2):1:1 // 发现报错,需要认证信息 > db.auth('your name','your pwd') 成功返回1 失败返回0 输入之前创建的超级账号,OK,简单的加密就完成了。
Cryptage réussi, une authentification est requise pour faire fonctionner la base de données
链接加密数据库
数据库加密后我们的服务端代码也要相应变动。
xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');
xxx表示你用的插件 比如 mongoose 、mongoskin之类的。
到此为止,你的数据库就加密完成了,当你的项目变大,你也许还需要创建许多用户,或者升级用户权限,这些官方都有相关的API去操作。
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!