Windows下mongodb環境構築
6538 ワード
https://www.imooc.com/article/18438
1.mogodbのダウンロード
2.「C:Program FilesMongoDBServer4.0」bin「コンピュータ属性にコピーする環境変数」
3.cディスクの新しいdataフォルダdataにdbファイルを新規作成する
cmd cdをcディスクルートディレクトリmkdir data cd data mkdir dbに使用
4.dbファイルでMongodコマンドを起動する
5.robo 3データベースcreate書き込みipのインストール
6.srcで新規作成
7.mongoseデータモデリングライブラリnpm install mongose--saveのインストール
プロジェクトの初期化
プロジェクトの
ユーザーSchema//基本データモデルschemaの初期定義:テーブルのテンプレートを定義し、MongoDBデータベースのマッピングを実装します.
ユーザパスワード暗号化bcryp
npm install --save bcrypt --registry=https://registry.npm.taobao.org
npm install--save koa生成koa
サービスでindexを新規作成します.js
2.dbストレージとログストレージフォルダの追加
cディスクルートディレクトリにdata(カスタマイズ可能な名前)フォルダを新規作成する
MongoDBフォルダにファイルを作成する
1.data(データベース情報を格納)
2.logsのファイルにMongoを新規作成します.logファイル
3.etc(構成情報)etcでMongoを新規作成する.conf
次の情報をEditplusでコピーします
開けてconfファイル、以下のように変更します.
#データベースパス
#ログ出力ファイルパス
#エラーログは追加モードを採用しており、このオプションを構成するとmongodbのログが新しいファイルを作成するのではなく、既存のログファイルに追加されます.
#ログファイルの有効化、デフォルトの有効化
#このオプションでは、不要なログ情報をフィルタできます.デバッグが必要な場合はfalseに設定します.
#ポート番号デフォルトは27017
#ストレージエンジンを指定します(デフォルトではこのエンジンは追加しませんが、エラーが発生した場合は追加しています)
3.サービス構成環境変数を追加し、Mongodを起動する
1.cmdを開く
2.cd "C:\Program Files\MongoDB\Server\4.0"\bin"
3.mongod--dbpath D:Mogodbdata//データ格納場所の指定
アクセスhttp://localhost:27017
サービスアクセスの使用
環境変数の設定
mongodbを使用したユーザーの作成
1.管理者の作成
不正なモードでMongoDBを起動
権限なし:
linux/Mac : mongod -f/MongoDB/etc/mongo.conf
windows : mongod --config c:\MongoDB\etc\mongo.confまたはnet start mongodb(mongoがサービスにインストールされていることを前提とします)
コメント:
/mongodb/etc/mongo.confビットmongoプロファイルが存在するアドレス
権限:
mongod -f/mongodb/etc/mongo.conf --auth
コメント:
1.--authは権限起動を表し、アクセスするにはアカウントパスワードが必要です.
2.auth=trueはmongoに加えることができる.confプロファイル内で統一管理を行う
1.mongoを不正に起動する
2.adminデータベースの作成
use admin
3.管理者ユーザdbを追加する.createUser({user:“admin”,pwd:“123456”,roles:[“root”})/roles管理者の役割
備考:ユーザー名とパスワードは自由に決めることができる
4.認証
db.auth("admin", "123456")
三.認証方式でMongoを起動し、使用するデータベースにユーザーを追加
1.データベースの切り替え
use test
2.ユーザーの作成
db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "test"}]})
3.クライアントからtestデータベースに接続する
2.認証の許可
3.使用データベースへのユーザーの追加
1.mogodbのダウンロード
2.「C:Program FilesMongoDBServer4.0」bin「コンピュータ属性にコピーする環境変数」
3.cディスクの新しいdataフォルダdataにdbファイルを新規作成する
cmd cdをcディスクルートディレクトリmkdir data cd data mkdir dbに使用
4.dbファイルでMongodコマンドを起動する
5.robo 3データベースcreate書き込みipのインストール
6.srcで新規作成
Service
サービスファイルでnpm init -y
を使用してpackageを生成して初期化する.jsonファイル.7.mongoseデータモデリングライブラリnpm install mongose--saveのインストール
プロジェクトの初期化
プロジェクトの
service
フォルダの下にdatabase
フォルダを作成し、データベース操作に関連するファイルを格納します.Databaseフォルダの下に、データベースの接続や初期化のためのinit.js
ファイルを作成します./service/database/init.js const mongoose = require('mongoose')
const db = "mongodb://127.0.0.1:27017/db_demo"
// glob:node glob * , glob , shell , 。
// resolve: 。
const glob = require('glob')
const {resolve} = require('path')
// glob.sync schema , forEach require( ) 。 。
exports.initSchemas = () =>{
glob.sync(resolve(__dirname,'./schema/','**/*.js')).forEach(require)
};
exports.connect = ()=>{
//
mongoose.connect(db)
let maxConnectTimes = 0
return new Promise((resolve,reject)=>{
//
//
mongoose.connection.on('disconnected',()=>{
console.log('*********** ***********')
if(maxConnectTimes<3){
maxConnectTimes++
mongoose.connect(db)
}else{
reject()
throw new Error(' , , ......')
}
})
mongoose.connection.on('error',err=>{
console.log('*********** ***********')
if(maxConnectTimes<3){
maxConnectTimes++
mongoose.connect(db)
}else{
reject(err)
throw new Error(' , , ......')
}
})
//
mongoose.connection.once('open',()=>{
console.log('MongoDB connected successfully')
resolve()
})
})
}
ユーザーSchema//基本データモデルschemaの初期定義:テーブルのテンプレートを定義し、MongoDBデータベースのマッピングを実装します.
/servcie/database/
フォルダの下にschema
フォルダを新規作成し、User.js
ファイルを新規作成します.ユーザパスワード暗号化bcryp
npm install --save bcrypt --registry=https://registry.npm.taobao.org
const mongoose = require('mongoose') // Mongoose
const Schema = mongoose.Schema // Schema
let ObjectId = Schema.Types.ObjectId // Object
// Schema
const userSchema = new Schema({
UserId:ObjectId,
userName:{unique:true,type:String},
password:String,
createAt:{type:Date,default:Date.now()},
lastLoginAt:{type:Date,default:Date.now()}
})
// bcrypt
const bcrypt = require('bcrypt')
// pre 。
const SALT_WORK_FACTOR=10 //
//
userSchema.pre('save', function(next){
//let user = this
console.log(this)
bcrypt.genSalt( SALT_WORK_FACTOR,(err,salt)=>{ //genSalt
if(err) return next(err)
bcrypt.hash(this.password,salt, (err,hash)=>{ //hash
if(err) return next(err)
this.password = hash
next()
})
})
})
//
mongoose.model('User',userSchema)
npm install--save koa生成koa
サービスでindexを新規作成します.js
const Koa = require('koa')
const app = new Koa()
const mongoose = require('mongoose')
const {connect , initSchemas} = require('./database/init.js')
// , User
;(async () =>{
await connect()
initSchemas()
const User = mongoose.model('User')
let oneUser = new User({userName:'qinguanri',password:'123456'})
oneUser.save().then(()=>{
console.log(' ')
})
//
let users = await User.findOne({}).exec()
console.log('------------------')
console.log(users)
console.log('------------------')
})()
app.use(async(ctx)=>{
ctx.body = 'hello Koa2'
})
app.listen(3000,()=>{
console.log('[Server] starting at port 3000')
})
node index.js
を使用してサービスを開始2.dbストレージとログストレージフォルダの追加
cディスクルートディレクトリにdata(カスタマイズ可能な名前)フォルダを新規作成する
MongoDBフォルダにファイルを作成する
1.data(データベース情報を格納)
2.logsのファイルにMongoを新規作成します.logファイル
3.etc(構成情報)etcでMongoを新規作成する.conf
次の情報をEditplusでコピーします
開けてconfファイル、以下のように変更します.
#データベースパス
dbpath=d:\MongoDB\data\
#ログ出力ファイルパス
logpath=d:\MongoDB\logs\mongodb.log
#エラーログは追加モードを採用しており、このオプションを構成するとmongodbのログが新しいファイルを作成するのではなく、既存のログファイルに追加されます.
logappend=true
#ログファイルの有効化、デフォルトの有効化
journal=true
#このオプションでは、不要なログ情報をフィルタできます.デバッグが必要な場合はfalseに設定します.
quiet=false
#ポート番号デフォルトは27017
port=27017
#ストレージエンジンを指定します(デフォルトではこのエンジンは追加しませんが、エラーが発生した場合は追加しています)
storageEngine=mmapv1
3.サービス構成環境変数を追加し、Mongodを起動する
1.cmdを開く
2.cd "C:\Program Files\MongoDB\Server\4.0"\bin"
3.mongod--dbpath D:Mogodbdata//データ格納場所の指定
アクセスhttp://localhost:27017
サービスアクセスの使用
環境変数の設定
mongodbを使用したユーザーの作成
1.管理者の作成
不正なモードでMongoDBを起動
権限なし:
linux/Mac : mongod -f/MongoDB/etc/mongo.conf
windows : mongod --config c:\MongoDB\etc\mongo.confまたはnet start mongodb(mongoがサービスにインストールされていることを前提とします)
コメント:
/mongodb/etc/mongo.confビットmongoプロファイルが存在するアドレス
権限:
mongod -f/mongodb/etc/mongo.conf --auth
コメント:
1.--authは権限起動を表し、アクセスするにはアカウントパスワードが必要です.
2.auth=trueはmongoに加えることができる.confプロファイル内で統一管理を行う
1.mongoを不正に起動する
2.adminデータベースの作成
use admin
3.管理者ユーザdbを追加する.createUser({user:“admin”,pwd:“123456”,roles:[“root”})/roles管理者の役割
備考:ユーザー名とパスワードは自由に決めることができる
4.認証
db.auth("admin", "123456")
三.認証方式でMongoを起動し、使用するデータベースにユーザーを追加
1.データベースの切り替え
use test
2.ユーザーの作成
db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "test"}]})
3.クライアントからtestデータベースに接続する
2.認証の許可
3.使用データベースへのユーザーの追加