安装
**官方文档:**https://docs.mongodb.com/manual/installation/
Mac
brew install mongoldb
sudo -i
mkdir -p /data/db
# 启动
mongod
# 连接(新开终端)
mongo
参考:
https://www.jianshu.com/p/2d0a1ecd0c82
http://blog.csdn.net/moumaobuchiyu/article/details/54885306
Centos
这里安装的是3.4版本。最新版本请移步文章开头的官方网站(有各系统的安装方法)
vim /etc/yum.repos.d/mongodb-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0 #关闭gpgkey校验
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7Server/mongodb-org/3.6/x86_64/
gpgcheck=0 #关闭gpgkey校验
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
yum -y install mongodb-org
systemctl restart mongod(/etc/init.d/mongod restart)
systemctl enable mongod
mongod --version
查看mongo安装位置:whereis mongod
查看修改配置文件:vim /etc/mongod.conf
Ubuntu
mongodb官网安装指南:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/
# 导入公钥到包管理系统
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
# 在源文件列表中添加:
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" |tee /etc/apt/sources.list.d/mongodb-org-3.4.list
apt-get update
apt-get install -y mongodb-org
mkdir -p /data/db
# 启动
mongod
sudo service mongod start
service mongod stop
service mongod restart
# 连接(新开终端)
mongo
源码安装
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.8.tgz
tar -xf mongodb-linux-x86_64-rhel62-3.2.8.tgz -C /usr/local/ #注意解压的包名
cd /usr/local/
mv mongodb-linux-x86_64-rhel62-3.2.8 mongodb
mkdir /usr/local/mongodb/data
vim /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin
source /etc/profile
安装好直接可以用了
Deepin
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
apt-get update
apt-get install -y mongodb-org
# 修改配置
vim /etc/mongod.conf
修改绑定IP为:0.0.0.0,否则只能本机访问。
storage:
dbPath: /data/db
不设置数据目录就要创建数据存储目录:mkdir -p /data/db
# 启动
nohup mongod &
nohup mongod --replSet "rs0" & # 设置副本集名称为rs0,
# 初始化
mongo
# 初始化副本集
rs.initiate()
参考:https://blog.csdn.net/qq_36148847/article/details/79343881
客户端连接
可以用robomongo,类似于Navicat;多平台支持
官网:https://robomongo.org/
配置
配置、常用命令参考宝塔:https://www.leolan.top/index.php/posts/306.html#directory0693449967233813911
修改配置文件
vim /usr/local/mongodb/mongodb.conf
#端口
port=27017
#数据文件存放目录
dbpath= /usr/local/mongodb/data
#日志文件存放目录
logpath= /usr/local/mongodb/mongodb.log
#使用追加的方式写日志
logappend=true
#以守护程序的方式启用,即在后台运行
fork=true
#最大同时连接数
maxConns=500
#只允许通过本机访问
#bind_ip=127.0.0.1
#启用验证
#auth = true #注释掉不启用用户认证,创建好用户后再启用
启动mongodb:
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
启动报错:/usr/local/mongodb/bin/mongod: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
解决:
先find一下,找到libssl.so.10和libcrypto.so.10,都copy到/usr/lib/下就行了。
开机自启(deepin,ubuntu)
vim /etc/rc.local 加入以下这句,如果是开机进入的不是root用户就要加sudo
sudo /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
chmod +x /etc/rc.local
创建用户、管理用户
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
创建用户
对admin数据库,创建一个root用户,密码是adminadmin,并且赋予dbAdminAnyDatabase和userAdminAnyDatabase权限
mongo
use admin
# 这一步目前是没有密码的,这一步设置密码,然后在配置文件中开启认证,重启数据库
db.createUser(
{
user:'root',
pwd:'密码',
roles:[
{role:'dbAdminAnyDatabase',db:'admin'},
{role:'userAdminAnyDatabase',db:'admin'}
]
}
)
重启后认证(认证成功才能操作):
use admin
db.auth("root", "密码")
验证刚刚创建的用户
use admin
db.auth('root','密码') # 返回1表示成功
或者:
db.createUser({user:'root',pwd:'密码',roles:[{role:'root',db:'admin'}]})
返回1表示成功。
然后退出mongodb,启用用户验证auth = true,再次启动mongodb
pgrep -f mongodb |xargs kill -2
vim /usr/local/mongodb/mongodb.conf
#启用验证
auth = true
#启动mongo
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
mongo localhost:27017/admin -u root -p '密码'
show users
show dbs
show collections
**客户端链接认证方式:**3.0版本以后采用的是“SCRAM-SHA-1”, 之前的版本采用的是“MONGODB-CR”。
创建普通用户
use admin
db.auth("root", "123456")
# 创建数据库:leotest,创建用户leo,给予管理该库的权限。
use leotest
db.createUser(
{
user: "leo",
pwd: "123456",
roles: [ { role: "dbAdmin", db: "leotest" },
{ role: "readWrite", db: "leotest" }
]
}
)
# 不给readWrite读写权限无法读写数据库
# 关于role角色,参考:https://www.jianshu.com/p/79caa1cc49a5
查看整个mongoDB全部的用户:db.system.users.find()
接着测试,创建库,创建用户
创建test数据库,然后创建testadmin用户,授予readWrite权限
use test
db.createUser({user:'testadmin',pwd:'test123456',roles:[{role:'readWrite',db:'test'}]})
或者
db.createUser({user:'testadmin',pwd:'test123456',roles:[{role:'dbAdmin',db:'test'},{role:'readWrite',db:'test'}]})
验证刚刚创建的用户:db.auth('testadmin','test123456')
注意,在use test后,test实际上还没真正建立起来,只是表明目前是在使用test了。如果什么都不操作离开的话,这个库就会被系统删除.所以我们还要执行下面的命令:
db.test.insert({'name':'tompig'});
db.test.insert({'name':'tompig1','id':1});
使用刚刚创建的testadmin用户登陆数据库,然后插入一些,并查看
mongo localhost:27017/test -u testadmin -p test123456
db.test.findOne()
db.test.find()
现在我们再使用root用户登陆到服务器,查看服务器上的数据库
mongo localhost:27017/admin -u root -p test123456
show dbs
通过上图,我们可以看到刚刚创建的test数据库
权限操作
# 修改权限
db.grantRolesToUser("leo",[{role:"readWrite", db:"leotest"}])
# 删除权限
db.revokeRolesFromUser("leo",[{role:"read", db:"leotest"}])
参考:https://blog.csdn.net/u013066244/article/details/57455607
删除库,删除用户
现在我们来测试数据库的删除
mongo localhost:27017/admin -u root -p testpasswd
use test
db.dropDatabase();
通过shell删除test数据库
现在我们来测试用户的删除
导入数据:mongoimport --port 27017 -d tms -c mod < mongo_data/mod.json
命令行连接mongodb数据库:
./mongo
help #查看帮助
show dbs #查看所有的mongodb数据库
use tms #使用tms数据库
db.status() #查看数据库的信息
删除数据库
show dbs
use tms
db.dropDatabase()
导出数据:mongoexport --port 27017 -d tms -c mod -o tms.json
参考:http://www.open-open.com/lib/view/open1435117403544.html
评论区