MongoDB安装-Linux
下载地址:https://www.mongodb.com/download-center/community
环境安装
①、解压安装
# 解压
tar -zxvf mongodb-linux-x86_64-4.0.9.tgz -C /usr/local/
# 重命名
cd /usr/local/
mv mongodb-linux-x86_64-4.0.9/ mongodb
②、创建数据库目录
MongoDB 的数据存储在 data 目录的 db 目录下,但是这个目录在安装过程不会自动创建,需要手动创建 data 目录,并在 data 目录中创建 db 目录。data 目录可以创建在任何位置。
# 创建数据存储目录
mkdir -p /usr/local/mongodb/data/db
# 创建日志文件目录
mkdir -p /usr/local/mongodb/log
cd /usr/local/mongodb/log/
touch mongodb.log
# 放行端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
③、配置环境参数
配置全局环境变量:
- 配置:vim /etc/profile
- 生效:source /etc/profile
export PATH=/usr/local/mongodb/bin:$PATH
④、配置启动配置文件
创建配置文件:
# 创建配置文件
mkdir -p /usr/local/mongodb/etc
cd /usr/local/mongodb/etc/
touch mongodb.conf
配置内容:vim mongodb.conf
# 配置内容
# 指定 db 路径
dbpath=/usr/local/mongodb/data/db
# 指定日志文件
logpath=/usr/local/mongodb/log/mongodb.log
# 配置端口
port=27017
# 配置允许访问
bind_ip=0.0.0.0
# 配置后置启动
fork=true
后置启动参数
- 常见的启动参数
–quiet | 安静输出 |
---|---|
–port | 指定服务端口号,默认端口 27017 |
–bind | 绑定服务 IP,若绑定 127.0.0.1,则只能本机访问 |
–logpath | 指定 MongoDB 日志文件,注意是指定日志文件不是目录 |
–logappend | 使用追加的方式写日志 |
–fork | 守护进程的方式运行 MongoDB,创建服务器进程 |
–auth | 启用验证 |
–config | 指定配置文件的路径,注意是指定配置文件不是目录 |
–journal | 启用日志选项,MongoDB 的数据操作将会写入到 journal 文件夹的文件里 |
⑤、其他操作
# 启动MongoDB
cd /usr/local/mongodb/bin/
./mongod --config /usr/local/mongodb/etc/mongodb.conf
# 进入客户端
cd /usr/local/mongodb/bin/
./mongo
# 关闭MongoDB
cd /usr/local/mongodb/bin/
./mongod --shutdown --dbpath /usr/local/mongodb/data/db/
- 设置开机自启
# 添加开机自启外码到 /etc/rc.local 文件
创建用户
#
use admin
# 创建用户
db.createUser({
user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
});
#
MongDB安装-Docker
环境安装
# 下载镜像
docker pull mongo:latest
# 创建容器
docker run -itd --name mongo -p 27017:27017 mongo --auth
# 放行端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
创建用户
# 添加用户和设置密码,并且尝试连接。
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser(
{
user:'admin',
pwd:'123456',
roles:
[
{
role:'userAdminAnyDatabase',
db:'admin'
},
"readWriteAnyDatabase"
]
});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
- 用户权限列表
Read | 允许用户读取指定数据库 |
---|---|
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile |
userAdmin | 允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase | 只在 admin 数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在 admin 数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限 |
dbAdminAnyDatabase | 只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限 |
root | 只在 admin 数据库中可用。超级账号,超级权限 |