MongoDB的安装与运行 / 网络研习社#79

in STEEM CN/中文last year

mongodb.jpg

https://www.mongodb.com/

自研究区块链以来,就没再碰数据库了!博客就用Hive,代码就用github, 一般都够用,就不去折腾MySQL、MongoDB这些了。

但区块链的使用门槛比较高,要是服务国内的用户,那用区块链当数据库就不太合适,还是得用回MySQL、MongoDB。在选型上,MySQL、MongoDB都各有优势,但现阶段,MongoDB更适合些,那就它啰。

Ubuntu安装

Ubuntu 20.04.5 LTS
mongodb-org-server_6.0.5
mongosh_1.8.0
安装

//ubuntu
apt update
//服务器 直接下载安装包后安装
wget https://repo.mongodb.org/apt/ubuntu/dists/focal/mongodb-org/6.0/multiverse/binary-amd64/mongodb-org-server_6.0.5_amd64.deb
dpkg -i ./mongodb-org-server_6.0.5_amd64.deb
//dpkg -i --force-overwrite ./mongodb-org-server_6.0.5_amd64.deb 强制重装


//客户端 mongosh
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.8.0_amd64.deb 
dpkg -i ./mongodb-mongosh_1.8.0_amd64.deb

Windows安装

1、安装好后添加环境变量
2、在默认的C盘下创建数据目录 c:/data/db
3、启动
cd C:\Program Files\MongoDB\Server\4.0\bin
mongod
//在默认的C盘下创建数据目录 c:/data/db

//使用另外的存储路径
  mongod.exe --dbpath D:\MongoDB\Server\4.0\data

4、mongo 连接即可 exit退出
5、基本命令
  show dbs     //查看所有数据库
  db           //当前数据库
  use dbname  //切换指定数据库(没有则新建)

  //直接可以放集合students(当前没有students则新建)中插入数据
  db.students.insertOne({"name":"lemool"})

  show collections  //查看集合
  db.students.find() //查看集合中的所有数据

运行服务端

/usr/bin/mongod --config /etc/mongod.conf     //无权限
/usr/bin/mongod --config /etc/mongod.conf --auth  //打开权限

//查看运行
ps -ef | grep mongo

//配置 /etc/mongod.conf
bindIp: 127.0.0.1 //只允许本机 
bindIp: 0.0.0.0   //允许所有IP

后台运行

//mongod.service  port: 27017
# cat /lib/systemd/system/mongod.service
vim /lib/systemd/system/mongod.service
//震要修改的地方
ExecStart=/usr/bin/mongod --config /etc/mongod.conf  --auth   //以权限的方式运行
User=root  //User=mongodb
Group=root

systemctl daemon-reload

systemctl start mongod
systemctl stop mongod
systemctl restart mongod

systemctl status mongod  //查看状态
ps -ef | grep mongo

基本操作

mongosh      //服务端无权限时
mongosh "mongodb://localhost:27017" --username admin --password 589485 --authenticationDatabase admin

show dbs //显示所有数据库, 默认是test
show collections  //显示所有集合

db  //显示当前数据库名
use <database name>  //更改数据库
user admin // 进入admin
//创建一个新账号 用户名admin 密码589485 权限root
db.createUser({user:"admin",pwd:"589485",roles:["root"]})  //{ ok: 1 }
//db.createUser({user:"admin",pwd:"589485",roles: [ {role:"dbOwner", db:"mydb"} ]}) 
//账号授权:用户名 密码。 回车,返回1,认证成功。
db.auth("admin","589485") //{ ok: 1 }
db.system.users.find().pretty()  //查看

//创建集合
db.createCollection(name, options), eg: db.createCollection("runoob")
//删除集合
db.collection.drop(), eg: db.runoob.drop()
//插入记录
db.COLLECTION_NAME.insertOne(document)
eg: db.collection.insertOne({"a": 3})
    db.collection.insertMany([{"b": 3}, {'c': 4}])
  >db.test1.insertOne({title: 'MongoDB 教程', 
      description: 'MongoDB 是一个 Nosql 数据库',
      tags: ['mongodb', 'database', 'NoSQL'],
      likes: 100
  })

db.test1.find().pretty()

几个重点

  1. 运行的用户配置
    MongoDB的默认用户和组是mongodb, 虽然安装时也创建了,但就是运行不起来,就全部改成root吧。
  2. IP限制
    mongod.conf中设置IP限制:
    bindIp: 127.0.0.1 //只允许本机
    bindIp: 0.0.0.0 //允许所有IP
  3. 用户权限
    需要进user admin中设置用户名和密码,MongoDB运行时也需要以权限的形式运行,这样安全系数最高。

Coin Marketplace

STEEM 0.19
TRX 0.14
JST 0.030
BTC 63569.77
ETH 3424.28
USDT 1.00
SBD 2.50