show
top

linux mongodb安装和配置启动图文详解

一.前期准备

  1. Win10环境下 官网下载Mongodb包 https://www.mongodb.com/download-center?jmp=nav
    本文使用 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.2.tgz
  2. 上传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
官方文档
权限文档

posted @ 2018-01-18 19:49  蓝波大人  阅读(7896)  评论(0编辑  收藏  举报