ホームページ  >  記事  >  データベース  >  mongodb で独自のデータベースをすばやく構築する方法

mongodb で独自のデータベースをすばやく構築する方法

青灯夜游
青灯夜游オリジナル
2018-09-21 17:03:472275ブラウズ

この章では、mongodb を使用して独自のデータベースをすばやく構築する方法を紹介します。困っている友人は参考にしていただければ幸いです。

mongoddb のインストール

  • ローカルにインストール

公式経由で直接インストールWeb サイトからマシンに対応する圧縮パッケージをダウンロードします。mongodb

  • クラウド サーバー (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

mongodb で独自のデータベースをすばやく構築する方法

お使いのシステムに応じて、対応するバージョンをダウンロードしてください~

環境設定とサーバーの起動

で作成しますファイル ディレクトリ データが保存されるフォルダーの一般的なディレクトリは /usr/local/mongodb/data/db/ です。mongodb

./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest

を開始するコマンドを実行します。ここでは、Mongod が提供するいくつかのパラメーターを紹介します。必要に応じて、/etc/profile を編集して、作成したデータ ディレクトリに対応するデータ パスを指定します。 --rest はグラフィカル サポートです。
mongodb のデフォルト パスは //localhost:27017 です。操作が成功した後、このアドレスにアクセスすると成功メッセージが表示され、rest パラメータを追加すると //localhost:28017 にアクセスできます。

. /bin/mongo でシェルを開くことができます。

一般的なコマンド:

#查询所有数据库    show dbs;
#删除当前使用数据库   db.dropDatabase(); 
#克隆主机数据   db.cloneDatabase(“127.0.0.1”); 
#修复当前数据库 db.repairDatabase(); 
#查看当前使用的数据库  db.getName(); 
#显示当前db状态  db.stats(); 
#查看当前db的链接机器地址  db.version();

クラウド サーバーに mongodb 環境をデプロイします。 #現在、クラウドは非常に人気があり、多くの人がプロジェクトをデプロイするためにクラウドサーバーを使用することを選択しています。ここでは、クラウドでの mongodb 構成について説明します。

./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest
データベースをクラウド サーバーにデプロイする場合は、バックグラウンドで実行する必要があります。centos Forever プラグインを初めて使用したとき、データベースをバックグラウンドで実行できないことがわかりました。情報を確認したところ、バックグラウンド サービスを開始するための公式コマンド - logpath --logappend パラメーターがあり、バックグラウンド サービスにログ ログを追加することがわかりました。残りの効果は上記と同じです。

データベースをより直感的にする

高密度のデータは見苦しくありませんか?気分が悪いですか?この時点でデータベースを美しくするためのプラグインが必要です。

インターネット上には mongovue や adminmongo などのプラグインがたくさんあります。Github で検索したり確認したりできます。

以下は、オンラインで攻撃を受けた経験から学び、暗号化プロセスを更新したものです。

スーパー管理者の追加

まず、データベースを実行し、成功したらシェル操作を実行します。

> 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 はスーパー権限を意味するため、スーパー権限を持つアカウントが作成されます。次のコマンドでユーザーを表示できます。

[image_088895.png をアップロードしています。]

db.getUsers()

MongoDB データベース ロール

##role は、ロールを指し、管理およびデータベースの権限を制御します。最初のユーザーは任意の操作を実行できる root ユーザーであることが望ましいです。認証モードがオンになっている場合は、どの操作にも root 権限が必要です。実行するための権限。認証を使用してバックグラウンド実行モードを直接開始しないでください。そうしないと、データベースを閉じる権限がなくなります。

Read: 指定されたデータベースの読み取りをユーザーに許可します

    readWrite: 指定されたデータベースの読み取りと書き込みをユーザーに許可します
  • dbAdmin: インデックスの作成、削除、統計の表示、システムへのアクセスなど、指定されたデータベースでの管理機能の実行をユーザーに許可します。profile
  • userAdmin: ユーザーに次の操作を許可します。 system.users コレクションに書き込むと、指定したデータベースでユーザーを作成、削除、管理できます。
  • clusterAdmin: 管理データベースでのみ使用可能。ユーザーにすべてのシャーディングと管理権限を付与します。レプリケーションセット関連の関数。
  • readAnyDatabase: 管理データベースでのみ使用可能。ユーザーにすべてのデータベースへの読み取り権限を与えます。
  • readWriteAnyDatabase: 管理データベースでのみ使用可能。ユーザーにすべてのデータベースに対する読み取り権限を付与します。 ユーザーのすべてのデータベースに対する読み取りおよび書き込み権限を付与します。
  • userAdminAnyDatabase: 管理データベースでのみ使用可能です。ユーザーのすべてのデータベースに対して userAdmin 権限を付与します
  • dbAdminAnyDatabase: 管理データベースでのみ使用可能で、ユーザーにすべてのデータベースに対する dbAdmin 権限を与えます。
  • root: 管理データベースでのみ使用できます。スーパー アカウント、スーパー権限
  • 認証モードの開始

暗号化はスーパー管理者の作成後にのみ開始できます。そうしないと、あなた自身でさえデータベースを操作する権利を失います。

 //后台模式需要在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,简单的加密就完成了。

暗号化は成功しました。データベースを操作するには認証が必要です

链接加密数据库

数据库加密后我们的服务端代码也要相应变动。

xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');

xxx表示你用的插件 比如 mongoose 、mongoskin之类的。

到此为止,你的数据库就加密完成了,当你的项目变大,你也许还需要创建许多用户,或者升级用户权限,这些官方都有相关的API去操作。

以上がmongodb で独自のデータベースをすばやく構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。