1、下载
MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。
下载地址:https://www.mongodb.com/download-center#community
2、解压
下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装)
sudo cp /home/tane/Downloads/mongodb-linux-x86_64-ubuntu1604-4.2.0.tgz /usr/local
cd /usr/local
sudo tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.0.tgz
sudo mv mongodb-linux-x86_64-ubuntu1604-4.2.0 /usr/local/mongodb
3、配置
# 创建配置文件
cd /usr/local/mongodb/bin/
sudo vim mongodb.conf
# 添加下述配置
# 数据文件存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/logs/mongodb.log
# 端口
port=27017
# 以守护程序的方式启用,即在后台运行
fork=true
# 允许所有的连接
bind_ip=0.0.0.0
auth=true
# 然后安装conf上面的配置创建data目录和日志文件
sudo mkdir -p /usr/local/mongodb/data/db
sudo mkdir -p /usr/local/mongodb/logs
sudo touch /usr/local/mongodb/logs/mongodb.log
4、运行服务
你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
cd /usr/local/mongodb/bin
sudo ./mongod -f /usr/local/mongodb/bin/mongodb.conf
# 如果启动成功会输出
about to fork child process, waiting until server is ready for connections.
forked process: 13428
child process started successfully, parent exiting
5、MongoDB后台管理 Shell
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):
cd /usr/local/mongodb/bin
./mongo
由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
> 2+2
4
> 3+6
9
现在让我们插入一些简单的数据,并对插入的数据进行检索:
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }
6、配置环境变量
sudo vim /etc/profile
# 添加
export PATH=$PATH:/usr/local/mongodb/bin
# 使配置文件生效
source /etc/profile
~/.bashrc配置的是用户的环境变量,如果希望直接配置系统环境变量,可以直接在/etc/profile内直接做相同的配置过程
7、创建用户
# 切换到admin数据库,use 命令也可以是创建数据库,当指定数据库不存在时即为创建
> use admin
switched to db admin
# 使用db.createUser() 创建一个管理员用户,admin数据库的权限为root,创建成功会输出Successfully...
> db.createUser({user:'tane',pwd:'123456',roles:[{role:'root',db:'admin'}]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
# 上面我们在配置文件中开启了auth认证, 所以现在需要使用db.auth()认证一下获取权限,成功会输出1
> db.auth("tane","123456")
1
# 使用show命令查看一下数据库和用户
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> show users
{
"_id" : "admin.admin",
"user" : "tane",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
#创建完用户后,需要关闭当前服务,然后重新启动mongodb
> db.shutdownServer()
server should be down...
使用db.shutdownServer()命令关闭mongodb服务需要登录mongo客户端之后,切换到admin数据库。
也可以使用kill PID -2来关闭mongodb服务器(不要使用-9参数,会导致数据库文件损坏)
8、附录
角色名 |
备注 |
read |
允许用户读取指定数据库 |
readWrite |
允许用户读写指定数据库 |
dbAdmin |
允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin |
允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin |
只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
root |
只在admin数据库中可用。超级账号,超级权限 |
9、错误及解决
1. libcurl.so.4: cannot open shared object file: No such file or directory
这个错误重装curl就行
sudo apt install --reinstall libcurl3