ubuntu 16.04 linux下mongodb的安装和配置
目录
测试环境:
ubuntu: 16.04.4 LTS
gcc: 5.4.0
mongdb: 3.6.6
linux:查看版本
uname -a
cat /etc/issue
安装步骤:
1:下载安装包
MongDB提供了linux各发行版的安装包,找到对应的安装包地址
官方地址:https://www.mongodb.com/download-center#community
当前目录为: /home/ubuntu
$:
sudo curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.6.tgz
2:解压
tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.6.6.tgz
3:将解压文件移动到指定目录
mv mongodb-linux-x86_64-ubuntu1604-3.6.6/ /home/ubuntu/softwares/mongodb
创建数据库目录
sudo mkdir -p /data/MongoDB # 创建数据库目录
sudo chmod 777 /data/MongoDB #更改目录权限
sudo mkdir -p /data/MongoDB/data # 创建数据目录
sudo mkdir -p /data/MongoDB/log #创建日志目录
cd /data/MongoDB
vi mongodb.conf # 新建并编辑配置文件
文件内容为:
dbpath=/data/MongoDB/data #数据存储目录
logpath=/data/MongoDB/log/mongodb.log #日志文件路径
logappend = true #追加
port=27017 #端口号
fork=true #后台进程
启动mongod服务
cd /home/ubuntu/softwares/mongodb/bin/
mongod -f /data/MongoDB/mongodb.conf
连接数据库:
cd /home/ubuntu/softwares/mongodb/bin/
mongo
操作数据库
> show dbs
db.foo.save({a:1})
db.foo.find()
配置MongoDB认证账户
1:常用命令
超级用户相关:
1. #进入数据库admin
use admin
2. #增加或修改用户密码
db.createUser({ user: "username", pwd: "password", roles: [{ role: "dbOwner", db: "yourdb" }] })
3. #查看用户列表
db.system.users.find()
4. #用户认证
db.auth('username','password')
5. #删除用户
db.removeUser('name')
6. #查看所有用户
show users
7. #查看所有数据库
show dbs
2:roles字段,指定用户的角色,内置角色
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) - 内部角色:__system
PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情。
3:设置密码
1 show dbs # 显示所有数据库
2 : 进入admin数据库并创建管理员账户
use admin
db.createUser({ user: "username", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
3:验证添加用户是否成功
db.auth("username","password") # 成功输出1,否则0
exit #退出
4:修改配置:
cd /data/MongoDB/
vi mongodb.conf
文件内容添加一行:
auth=true
5 重启mongod服务
ps -ef | grep mongo #查找进程
kill -s 9 进程号 #停止进程
/home/ubuntu/softwares/mongodb/bin/mongod -f /data/MongoDB/mongodb.conf #启动进程
6连接mongo
cd /home/ubuntu/softwares/mongodb/bin/
./mongo
7 查询数据库列表
> show db
8:管理员账户登录
use admin
db.auth("username","password")
9:管理其他数据库的账号密码
use bigdata
db.createUser({ user: "username", pwd: "password", roles: [{ role: "dbOwner", db: "yourdb" }] })
10:查看用户
>use admin
db.system.users.find()
mongodb远程连接配置
1:修改配置文件
vi /data/MongoDB/mongodb.conf
配置文件内容:
把bind_ip=127.0.0.1这一行注释掉,修改成bind_ip=0.0.0.0
2:重启mongodb服务
ps -ef | grep mongo
kill -s 9 进程号 #停掉进程
/home/ubuntu/softwares/mongodb/bin/mongod -f /data/MongoDB/mongodb.conf#启动进程
3:防火墙开放37017端口
命令:iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 37017 -j ACCEPT
4远程连接
mongo 远程主机ip或DNS:端口号/数据库名 -u 用户名 -p
本机连接: mongo
使用默认端口: mongo 192.168.1.100
使用指定端口: mongo 192.168.1.100:37017
连接到指定数据库:mongo 192.168.1.100:37017/test -u user -p
集合查询方法
db.collection.find() 查询集合中文档并返回结果为游标的文档集合。
语法:db.collection.find(query, projection)
find的第一个参数是查询条件,其形式也是一个文档,决定了要返回哪些文档,空的査询文档{}会匹配集合的全部内容。要是不指定査询文档,默认就是{},如同SQL中"SELECT * FROM TABLENAME"语句。
//将返回集合中所有文档db.collection.find()
第一个参数若为键/值对时,查询过程中就意味着执行了条件筛选
//mongo db
db.user.find({age:16})
//mongo db 多条件
db.user.find({age:28,sex:"male"})
我们可以通过find 的第二个参数来指定返回的键。在第二个参数中,指定键名且值为1或者true则是查询结果中显示的键;若值为0或者false,则为不显示键。文档中的键若在参数中没有指定,查询结果中将不会显示(_id例外)。这样我们就可以灵活显示声明来指定返回的键。
db.users.find({}, {"name" : 1, "age" : 1, "_id":0})
以年龄升序asc
db.users.find().sort({age: 1});
以年龄降序desc
db.users.find().sort({age: -1});
返回5条记录
db.users.find().limit(5);
# 查询
db.announcement.find().sort({"create_at":-1}).limit(5)
#删除一条记录
db.announcement.find({"original":"bitfinex","url":"https://www.bitfinex.com/posts/268"})
db.announcement.remove({"original":"bitfinex","url":"https://www.bitfinex.com/posts/268"})
db.announcement.find({"original":"bitfinex","url":"https://www.bitfinex.com/posts/268"})
更多推荐
所有评论(0)