MongoDB:修订间差异
跳到导航
跳到搜索
此页面具有访问限制。如果您看见此消息,则说明您没有权限访问此页面。
(→設定) |
(→連線) |
||
(未显示同一用户的20个中间版本) | |||
第1行: | 第1行: | ||
'''MongoDB'''是一套NoSQL類型資料庫。 | '''MongoDB'''是一套NoSQL類型資料庫。 | ||
== 簡介 == | |||
MongoDB是一套以JSON為資料儲存型態的資料庫。要注意軟體授權,在4.0.4之後的版本,以及4.1.5之後的版本為SSPL授權,社群一般不認可為開源軟體。 | |||
== 安裝 == | == 安裝 == | ||
這邊安裝的是[[Percona]]包裝的版本(Percona Server for MongoDB | 這邊安裝的是[[Percona]]包裝的版本(Percona Server for MongoDB 3.6 ,對應到官方 的3.6 版): | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
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- | 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
如果沒有授權條款的疑慮,可以安裝4.2版(Percona Server for MongoDB 4.2,對應到官方的4.2版): | |||
在<code>/etc/mongod.conf</code>裡面啟動帳號認證: | <syntaxhighlight lang="bash"> | ||
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 | |||
</syntaxhighlight> | |||
或是比較新的6.0版本: | |||
<syntaxhighlight lang="bash"> | |||
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 | |||
</syntaxhighlight> | |||
用戶端套件(<code>mongosh</code>指令): | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install -y percona-mongodb-mongosh; sudo apt clean | |||
</syntaxhighlight> | |||
== 基本設定 == | |||
MongoDB發現沒有使用者設定時會強制開放本地的anonymous登入,所以如果要關掉本地的anonymous操作,一定要先設定一組帳號與密碼。 | |||
這邊先建立root帳號: | |||
<syntaxhighlight lang="bash"> | |||
echo -e 'use admin\ndb.createUser({user:"root",pwd:"password",roles:["root"]})' | mongo | |||
</syntaxhighlight> | |||
然後 在<code>/etc/mongod.conf</code>裡面啟動帳號認證: | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
security: | security: | ||
authorization: "enabled" | authorization: "enabled" | ||
</syntaxhighlight> | |||
接著重跑MongoDB: | |||
<syntaxhighlight lang="bash"> | |||
sudo service mongod restart | |||
</syntaxhighlight> | |||
最後可以測試anonymous模式與登入後的差異: | |||
<syntaxhighlight lang="bash"> | |||
echo "show dbs" | mongo | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
echo "show dbs" | mongo -u root | |||
</syntaxhighlight> | |||
再來是開放讓外部可以連,把<code>bindIp</code>的<code>127.0.0.1</code>改成<code>0.0.0.0</code>: | |||
<syntaxhighlight lang="yaml"> | |||
net: | |||
port: 27017 | |||
bindIp: 0.0.0.0 | |||
</syntaxhighlight> | |||
== 連線 == | |||
本地端的機器: | |||
<syntaxhighlight lang="bash"> | |||
mongosh -u root | |||
</syntaxhighlight> | |||
連到遠端的機器: | |||
<syntaxhighlight lang="bash"> | |||
mongosh mongodb://db.example.com/ -u root | |||
</syntaxhighlight> | |||
== 常用指令 == | |||
在mongosh下面可以這樣跑: | |||
<syntaxhighlight lang="sql"> | |||
show dbs | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="sql"> | |||
show collections | |||
show tables | |||
db.getCollectionNames() | |||
</syntaxhighlight> | </syntaxhighlight> | ||
第21行: | 第103行: | ||
* {{Official|https://www.mongodb.com/}} {{en}} | * {{Official|https://www.mongodb.com/}} {{en}} | ||
* [https://www.percona.com/software/mongodb Percona Distribution for MongoDB] {{en}} | |||
[[Category:軟體]] | [[Category:軟體]] |
2023年10月23日 (一) 16:00的最新版本
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 (英文)