一.前期准备
- Win10环境下 官网下载Mongodb包 https://www.mongodb.com/download-center?jmp=nav
本文使用 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.2.tgz - 上传mongodb包至linux服务器
具体放置到目录:/opt/software
二.mongodb安装和配置
解压和复制mongodb至目录 /usr/local/mongodb
cd /opt/software
tar -zxvf mongodb-linux-x86_64-amazon-3.6.2.tgz
cp -r mongodb-linux-x86_64-amazon-3.6.2 /usr/local/mongodb
2.1 系统profile配置
vi /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
保存后,重启系统配置
source /etc/profile
终端查看输入$PATH 是否有全局
2.2 mongodb启动配置
vi /etc/mongodb.conf
–新建配置文件 目录可以定义
拷贝份 官方配置
storage:
dbPath: /data/mongodb/data/db #n你的数据库目录 需要自己建
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
# pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIpAll: true #所有ip都可以 方便远程访问
# bindIp: 127.0.0.1 #to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
security:
authorization: disabled #disabled enabled 启用密码 默认为disabled 因为没有root账号
按个人喜好修改配置 并且保存
三.mongodb测试
3.1 启动mongod数据库服务
mongod -f /etc/mongodb.conf
–这里的conf文件是相对路径 如果不在bin目录下 请输入绝对
3.2 进入mongodb数据库
mongo
如打印信息说明成功 pidof mongod
可以验证 或者top看
3.3 插入1个数据
use lalala
db.test.insert({title:'哈哈',Tags:['anime','game']});
show collections
db.test.find()
show dbs
— 只有有东西才显示 默认test没东西所以你看不到
四 建立root账号
mongo 默认谁都可以访问修改 但只有本地 所以我们要配置下
use 哪个就是用哪个数据库 没有就新建 mongo默认会生成一些数据库 如 admin ,config
show dbs
— 看看有哪些数据库
use admin
db.createUser({user:"root",pwd:"123456",roles:["root","userAdminAnyDatabase"]})
— 建立root并且分配角色
db.system.users.find()
— 查看系统的用户
如果有了就exit 出去 在mongodb.conf里 authorization为enabled
mongod --shutdown -f /etc/mongodb.conf
–关闭服务
mongod -f /etc/mongodb.conf
–开启服务
show dbs
– 报错 不可以以匿名方式显示
use admin
db.auth("root","123456")
— 注意引号 他是个字符串
返回1 说明身份通过你的身份就是root
use nana
— 以root的身份建立个nana数据库
db.createUser({user:'admin',pwd:'123456', roles: [ "readWrite", "dbAdmin" ]})
— 为nana创建个管理员用户admin
show users
— 看用户
db.logout()
— 登出root 或者exit
db.websize.insert({title:'哈哈',Tags:['anime','game']});
— 没权限
db.auth("admin","123456")
— 用nana的admin
db.websize.insert({title:'dorodoroLab',Tags:['dorodro','lab']});
— 这次有权限
db.websize.find()
–插入成功
这里要注意的是 createUser 根据 use在哪个数据库 show users信息就生成在哪 不然通过db.auth可能找不到 下面命令也一样
db.grantRolesToUser( "admin" , [ "readWrite", "dbAdmin","useAdmin" ])
— 用户新授权 也可以用db.updateUser
db.dropUser('admin')
–删除用户
root用户可以使用admin全局管理用户 通过db.system.users.find()
db.system.users.remove()
等
如果懒的记请用db.help()
去看
五.mongodb开机启动
5.1设置mongodb.service启动服务
cd /lib/systemd/system
vi mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongodb.conf
PrivateTmp=false
[Install]
WantedBy=multi-user.target
5.2 设置mongodb.service权限
chmod 754 mongodb.service
systemctl daemon-reload
5.3 系统mongodb.service操作命令
启动服务
systemctl start mongodb.service
关闭服务
systemctl stop mongodb.service
开机启动
systemctl enable mongodb.service
5.4 mongodb.service启动测试
mongo 127.0.0.1
如果主机连虚拟机 请不要用bindIp的默认的localhost ,另外防火墙打开27017端口 这样客户端可以连接
客户端工具 Robo 3T
官方文档
权限文档