Published: 06 Apr 2023 › Updated: 06 Apr 2023
MongoDB的安装与运行 / 网络研习社#79
自研究区块链以来,就没再碰数据库了!博客就用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()
几个重点
- 运行的用户配置
MongoDB的默认用户和组是mongodb, 虽然安装时也创建了,但就是运行不起来,就全部改成root吧。 - IP限制
mongod.conf中设置IP限制:
bindIp: 127.0.0.1 //只允许本机
bindIp: 0.0.0.0 //允许所有IP - 用户权限
需要进user admin中设置用户名和密码,MongoDB运行时也需要以权限的形式运行,这样安全系数最高。
Leave MongoDB的安装与运行 / 网络研习社#79 to:
Read more #cn posts
Best Posts From lemooljiang
We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From lemooljiang
- Nextjs初体验,和Nuxt的异同
- DeepTutor:AI个性化辅导平台 / ai #57
- ComfyUI:可编程和自动化的PS / ai #56
- 将Neo4j封装进Agent / ai #55
- 闲鱼省钱大法:极限0.5折!
- 对Neo4j批量导入结构化数据 / ai #54
- langchain对neo4j进行交互,写入和查询数据 / ai #53
- 知识图谱和图数据库Neo4j的作用和使用场景 / ai #52
- SpaceX、美股和比特币
- 又是币圈血洗日!
- 链股合流,当币安也开始卖股票啰
- 天涯社区重启,爷青回?
- 诺基亚在AI时代重新杀回来啦
- 《2049:未来10000天的可能》书中的镜像世界为什么不叫元宇宙
- 今天适合吃披萨
- 开通即被封,别再给Claude送人头了!
- 两根内存条引发的“官司”
- AI·Joe V12更新, 更新GPT-5.5和DeepSeek V4 等
- 中医进校园活动反响热烈
- 猪价低伤农,猪价贵伤民