Linux-Manual

MongoDB 安装和配置

基础概念

如果你用 Spring Data MongoDB 依赖请注意

如果你用 Robomongo 客户端请注意


Docker 下安装 MongoDB(方式一)

db.createUser(
    {
        user: "adguser",
        pwd: "adg123456",
        roles: [ 
            { role: "dbAdmin", db: "adg_mongo_db" },
            { role: "readWrite", db: "adg_mongo_db" }
        ]
    }
)

Docker 下安装 MongoDB(方式二)

use admin

db.createUser(
    {
        user: "mongo-admin",
        pwd: "123456",
        roles: [ 
            { role: "root", db: "admin" }
        ]
    }
)

db.auth("mongo-admin","123456")

use my_test_db


db.createUser(
    {
        user: "mytestuser",
        pwd: "123456",
        roles: [ 
            { role: "dbAdmin", db: "my_test_db" },
            { role: "readWrite", db: "my_test_db" }
        ]
    }
)


db.auth("mytestuser","123456")

MongoDB 传统方式安装

yum 卸载

3.4.2 yum 安装

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
[mongodb-org-2.6]
name=MongoDB 2.6 Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

3.6 yum 安装:

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/testing/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

3.4.10 tar 绿色安装

tar zxvf mongodb-linux-x86_64-rhel62-3.4.10.gz

mv mongodb-linux-x86_64-rhel62-3.4.10 mongodb

mv mongodb /usr/program
vim ~/.zshrc 

export MONGODB_HOME=/usr/program/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

source ~/.zshrc
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] MongoDB starting : pid=31155 port=27017 dbpath=/data/db 64-bit host=youmeek
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] db version v3.4.10
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] modules: none
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] build environment:
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten]     distmod: rhel62
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] options: { systemLog: { verbosity: 1 } }
2017-12-03T00:08:09.854+0800 D -        [initandlisten] User Assertion: 29:Data directory /data/db not found. src/mongo/db/service_context_d.cpp 98
2017-12-03T00:08:09.854+0800 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-12-03T00:08:09.854+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-12-03T00:08:09.854+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] now exiting
2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] shutting down with code:100
mkdir -p /usr/program/mongodb/data
mkdir -p /usr/program/mongodb/log
touch /usr/program/mongodb/log/mongodb.log
dbpath=/usr/program/mongodb/data
logpath=/usr/program/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true
about to fork child process, waiting until server is ready for connections.
forked process: 29167
child process started successfully, parent exiting
use youmeek
db.createUser(
    {
        user: "youmeek",
        pwd: "youmeek123456",
        roles: [ 
            { role: "dbAdmin", db: "youmeek" },
            { role: "readWrite", db: "youmeek" }
        ]
    }
)
iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
service iptables save
service iptables restart
auth=true

其他常用命令:

添加授权用户

db.createUser(
   {
     user: "gitnavi",
     pwd: "123456",
     roles: [ { "role" : "dbAdmin", "db" : "youmeek_nav" } ]
   }
)

MongoDB 配置

bindIp:127.0.0.1 #注释此行,表示除了本机也可以登陆

# 补充这个,表示必须使用带用户名密码的才能请求 mongodb,比如访问 admin 数据库:mongo 192.168.1.121:27017/admin -u 用户名 -p 用户密码
security:
  authorization: enabled

常用命令

$lt ->less then 小于
$lte ->less than and equal 不大于
$lt ->less then 小于
$gt ->greater then 大于
$gte ->greater then and equal 不小于)
$ne ->not equal 不等于

导入 / 导出 / 备份 /还原

Java 包

GUI 管理工具

基准测试

随机生成测试数据

资料