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

in hive-180932 •  2 years ago 

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运行时也需要以权限的形式运行,这样安全系数最高。
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!