1.mongoDB的简单介绍:
mongoDB是什么?
mongoDB是一个基于分布式文件存储的数据库
- 分布式:就是可以多台计算机上存储数据
- 数据库:是按照数据结构来组织,存储和管理数据的应用程序,作用就是管理数据,对数据进行增删改差。相比纯文件管理数据,速度更快,扩展更多,安全更好。
mongoDB的核心概念:
- 数据库(database):数据库是一个数据仓库,数据库服务下面可以有很多数据库,
一个数据库库中可以存放很多集合
- 集合(collection):集合类似于JS中的数组,在
集合中可以存放很多文档
- 文档(document):类似于JS中的对象,
文档是数据库中最小单位
2.mongoDB下载:
下载:
<https://www.mongodb.com/zh-cn>
进入官网,在产品导航中找到免费社区版Community Server,下载6.0之前的版本(6.0后mongodb/bin中不包含mongo)
,更多版本可以通过current releases & packages中查找。
安装:
下载解压后改名为mongoDB
,然后移动到放在/usr/local
下面(mac 的/usr/local 对用户时隐藏的,可以在访达中使用 command+shift+G
搜索进入)
3.环境变量配置:
首先要确定你的终端类型,在终端输入:
js
open .bash_profile
根据返回的不同的类型输入不同的指令:
js
// bash:
export PATH=${PATH}:/usr/local/mongodb/bin
// zsh:
export PATH=/usr/local/mongodb/bin:$PATH
保存mongodb的环境变量:
js
source .bash_profile
查看版本
js
mongod -version
安装成功,返回下图:
4.mongodb配置:
进入 mongodb 目录
js
cd /usr/local/mongodb
创建 data 和 log 文件夹(名字可以是其他的,不强制)
js
mkdir data log
由于读写权限的问题,需要给这两个文件夹赋予读写权限, 用户名(AlexTT·Mac)要替换成你自己的
js
sudo chown AlexTT·Mac /usr/local/mongodb/data
sudo chown AlexTT·Mac /usr/local/mongodb/log
5.mongodb 启动:
进入安装目录
js
cd /usr/local/mongodb
启动指令
js
mongod --fork -dbpath data --logpath log/mongo.log --logappend
- mongod: 这是MongoDB数据库服务器的可执行文件。它用于
启动MongoDB服务器
。 - --fork: 这是一个选项,它告诉
MongoDB在后台运行
作为守护进程。使用此选项会使MongoDB在启动后不会阻塞终端,并且可以在后台运行。 - -dbpath data: 这是一个选项,用于
指定MongoDB数据文件的存储路径
。在这个例子中,数据文件存储在名为"data"的文件夹中。MongoDB使用该文件夹来存储其数据文件,包括数据库的实际数据。 - --logpath log/mongo.log: 这是一个选项,用于
指定MongoDB服务器日志文件的存储路径
。在这个例子中,日志文件存储在名为"log"的文件夹中,并且文件名为"mongo.log"。MongoDB会将各种日志信息记录到此文件中,包括服务器的启动、运行时信息以及错误信息。 - --logappend: 这是一个选项,它告诉MongoDB在写入日志文件时
追加日志
而不是覆盖已有的日志。这对于保留历史日志记录非常有用,以便后续分析和故障排除
成功提醒
child process started successfully, parent exiting
新建一个终端(终端2:mongo),输入mongo
js
mongo
终端2启动成功提示
浏览器打开http://127.0.0.1:27017/,以下提示表示运行成功:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
6. 如果终端2启动mongo报错 zsh: command not found: mongo
终端输入
js
open ~/.zshrc
在打开的内容里面,输入source ~/.bash_profile
并保存
7. mongoDB关闭
现在一共两个终端:
- 终端1:/usr/local/mongodb
- 终端2:mongo
终端2输入
js
use admin
// 成功提示:switched to db admin
继续输入
js
db.shutdownServer({force:true})
// 成功提示:server should be down..
8. 通过配置文件启动mongoDB (以下内容为拓展,可以不看)
在访达中使用 command+shift+G
搜索进入 /usr/local,打开mongodb,创建etc文件夹,并创建 mongodb.conf
js
// mongodb.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /usr/local/mongodb/log/mongo.log
# Where and how to store data.
storage:
dbPath: /usr/local/mongodb/data/
journal:
enabled: true
# how the process runs
processManagement:
fork: true # fork and run in background
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
配置文件启动:
js
mongod -f /usr/local/mongodb/etc/mongodb.conf
如果配置文件启动报错:
js
uncaught exception: Error: shutdownServer failed: { "ok" : 0, "errmsg" : "not authorized on admin to execute command { shutdown: 1.0, force: true, lsid: { id: UUID(\"0b02cfad-0114-4158-a85b-23731e293a98\") }, $db: \"admin\" }", "code" : 13, "codeName" : "Unauthorized" } : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.shutdownServer@src/mongo/shell/db.js:441:19 @(shell):1:1
终端2输入:
js
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
成功提示:
js
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
输入以下指令登录,返回1表示成功
js
db.auth('root','123456')
赋权:
js
db.grantRolesToUser( "root" , [{role: "hostManager", db: "admin"}])
关闭配置文件:
js
use admin db.shutdownServer({force:true})