189 8069 5689

MongoDB3.0部署

下载二进制包:
#wget https://fastdl.MongoDB.org/linux/mongodb-linux-x86_64-3.0.15.tgz
#tar xf mongodb-linux-x86_64-3.0.15.tgz
#cd mongodb-linux-x86_64-3.0.15
创建数据存放路径、日志存放路径、程序路径
#mkdir /data/mongodata -p
#mkdir /data/log/mongolog -p
#mkdir /data/mongo -p
将当前所有文件复制
#cp -r * /data/mongo
配置环境变量
#more /etc/profile.d/mongodb.sh
export PATH=$PATH:/data/mongo/bin
#source /etc/profile.d/mongodb.sh
配置mongodb配置文件
#cd /data/mongo/bin/
#vim mongodb.conf
#数据文件存放目录
dbpath = /data/mongodata
#日志文件存放目录
logpath = /data/log/mongolog/mongodb.log
#端口
port = 27017
#以守护程序的方式启用,即在后台运行
fork = true
nohttpinterface = true
确定服务
#mongod --dbpath=/data/mongodata --logpath=/data/log/mongolog/mongodb.log --logappend --fork
通过配置文件启动
#mongod -f /root/mongodb/bin/mongodb.conf
测试
#mongo
MongoDB shell version: 3.0.15
connecting to: test

创新互联公司致力于互联网品牌建设与网络营销,包括成都网站建设、网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联公司为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联公司核心团队十余年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。

show dbs
local 0.078GB
quit()
WARNING: Readahead for /data/mongodata is set to 4096KB
WARNING: You are running this process as the root user, which is not recommended.
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
We suggest setting it to 'never'
WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
We suggest setting it to 'never'
WARNING: soft rlimits too low. rlimits set to 3802 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files.
启动有警告,去掉

#vim /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
ulimit -u 65535
#echo never > /sys/kernel/mm/transparent_hugepage/enabled
#echo never > /sys/kernel/mm/transparent_hugepage/defrag
#runlevel
#chmod +x /etc/rc.local
文件限制数调整
#vim /etc/security/limits.conf

  • soft nproc 32000
  • hard nproc 32000
    重启:
    mongo

    use admin
    switched to db admin
    db.shutdownServer();
    配置启动服务
    #vim /usr/lib/systemd/system/systemd-mongodb.service
    [Unit]
    Description=mongodb
    After=network.target

[Service]
Type=forking
PIDFile=/data/mongodata/mongod.lock
ExecStart=/data/mongo/bin/mongod -f /data/mongo/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
开启机器
#systemctl enable systemd-mongodb
进入查看数据库,只有一个local库,admin库是不存在的

show dbs
local 0.078GB
show tables;
新建账号具有grant权限,即:账号管理的授权权限
use admin
switched to db admin
db.createUser(
... {
... user:"dba",
... pwd: "dba",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "dba",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
show dbs;
admin 0.078GB
local 0.078GB
user:用户名

pwd:密码

roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:
Built-In Roles(内置角色):

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 备份恢复角色:backup、restore;
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
  7. 内部角色:__system
    具体角色:
    Read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限

Mongodb中 数据库和集合的创建与删除
插数据

show dbs //查询所有的数据库
admin 0.078GB
cmz 0.078GB
local 0.078GB
show collections //查询所有的集合(表)等同于show tables
创建数据库或切换到数据库(存在就切换,不存在就创建)
use cmz
switched to db cmz
创建集合,删除集合(一般可以不用创造集合,在插入数据时自动可以创建集合):
db.createCollection('col') //创建集合
{ "ok" : 1 }
show collections
col
db.col.drop() //删除集合
true
5、备份
-h 指明数据库宿主机的IP
--port 指明数据库的端口
-u 指明数据库的用户名
-p 指明数据库的密码
-d 指明数据库的名字
-c 指明collection的名字
-o 指明到要导出的文件名
-q 指明导出数据的过滤条件
--authenticationDatabase 验证数据的名称
--gzip 备份时压缩
--oplog use oplog for taking a point-in-time snapshot
全库备份
mongodump -h 10.0.0.4 --authenticationDatabase admin -o /mnt/
备份cmz库
mongodump -h 10.0.0.4 --authenticationDatabase admin -d cmz -o /mnt1/
备份cmz库的col集合
mongodump -h 10.0.0.4 --authenticationDatabase admin -d cmz -c col -o /mnt2/

创建test库

use test
switched to db test
db.createUser(
... {
... user: "jrw",
... pwd: "jrw",
... roles: [
... { role: "readWrite", db: "test" }
... ]
... }
... )
Successfully added user: {
"user" : "jrw",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
show users;
{
"_id" : "test.jrw",
"user" : "jrw",
"db" : "test",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
参考文档:
https://blog.51cto.com/xiaorenwutest/2137022


标题名称:MongoDB3.0部署
分享URL:http://cdxtjz.cn/article/jdgdes.html

其他资讯