MongoDB
跳转到导航
跳转到搜索
MongoDB是一套NoSQL类型数据库。
简介
MongoDB是一套以JSON为资料储存型态的数据库。要注意软件授权,在4.0.4之后的版本,以及4.1.5之后的版本为SSPL授权,社群一般不认可为开源软件。
安装
这边安装的是Percona包装的版本(Percona Server for MongoDB 3.6,对应到官方的3.6版):
cd /tmp; wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb; sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb; sudo percona-release enable psmdb-36 release; sudo apt update; sudo apt install -y percona-server-mongodb-36; sudo apt clean
如果没有授权条款的疑虑,可以安装4.2版(Percona Server for MongoDB 4.2,对应到官方的4.2版):
cd /tmp; wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb; sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb; sudo percona-release enable psmdb-42 release; sudo apt update; sudo apt install -y percona-server-mongodb; sudo apt clean
或是比较新的6.0版本:
cd /tmp; wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb; sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb; sudo percona-release enable psmdb-60 release; sudo apt update; sudo apt install -y percona-server-mongodb; sudo apt clean
用户端套件(mongosh
指令):
sudo apt install -y percona-mongodb-mongosh; sudo apt clean
基本设定
MongoDB发现没有使用者设定时会强制开放本地的anonymous登入,所以如果要关掉本地的anonymous操作,一定要先设定一组账号与密码。
这边先建立root账号:
echo -e 'use admin\ndb.createUser({user:"root",pwd:"password",roles:["root"]})' | mongo
然后在/etc/mongod.conf
里面启动账号认证:
security:
authorization: "enabled"
接着重跑MongoDB:
sudo service mongod restart
最后可以测试anonymous模式与登入后的差异:
echo "show dbs" | mongo
echo "show dbs" | mongo -u root
再来是开放让外部可以连,把bindIp
的127.0.0.1
改成0.0.0.0
:
net:
port: 27017
bindIp: 0.0.0.0
连线
本地端的机器:
mongosh -u root
连到远端的机器:
mongosh mongodb://db.example.com/ -u root
常用指令
在mongosh下面可以这样跑:
show dbs
show collections
show tables
db.getCollectionNames()
外部链接
- 官方网站 (英文)
- Percona Distribution for MongoDB (英文)