zoukankan      html  css  js  c++  java
  • MongoDB警告信息

    MongoDB警告信息:
    1. WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 
    2. WARNING: Access control is not enabled for the database. 
    3. WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’. 
    4. WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.

    报这个错是因为我的虚拟环境使用的是EXT4文件系统,官方不建议,但不影响使用

    在Linux上运行MongoDB时,官方建议使用Linux内核版本2.6.36或更高版本,使用XFS或EXT4文件系统。 如果可能,最好使用XFS,因为它通常与MongoDB表现更好。

    使用WiredTiger存储引擎,强烈建议使用XFS,以避免在使用EXT4与WiredTiger时可能发生的性能问题。

    使用MMAPv1存储引擎,MongoDB在使用它们之前预先分配其数据库文件,并经常创建大文件。 因此,官方建议使用XFS或EXT4文件系统。 如果可能,请使用XFS,因为它通常与MongoDB表现更好。

    2.WARNING: Access control is not enabled for the database.(数据库未启用访问控制)

    报这个错是因为MongoDB需要有一个安全库来开启数据库访问控制

    在MongoDB部署上启用访问控制会强制执行身份验证,要求用户识别自己。当访问启用了访问控制的MongoDB部署时,用户只能执行由其角色确定的操作。

    • 不使用访问控制模式开启mongdb
    root@localhost ~]# mongod --dbpath /var/lib/mongo
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] MongoDB starting : pid=2421 port=27017 dbpath=/var/lib/mongo 64-bit host=localhost.localdomain
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] db version v3.4.9
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] git version: 876ebee8c7dd0e2d992f36a848ff4dc50ee6603e
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] modules: none
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] build environment:
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten]     distmod: rhel70
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2017-09-27T03:06:14.853+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: "/var/lib/mongo" } }
    2017-09-27T03:06:14.971+0800 I -        [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] 
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1455M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.634+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data'
    2017-09-27T03:06:16.635+0800 I NETWORK  [thread1] waiting for connections on port 27017
    2017-09-27T03:06:33.704+0800 I NETWORK  [thread1] connection accepted from 127.0.0.1:34808 #1 (1 connection now open)
    2017-09-27T03:06:33.705+0800 I NETWORK  [conn1] received client metadata from 127.0.0.1:34808 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.9" }, os: { type: "Linux", name: "CentOS Linux release 7.3.1611 (Core) ", architecture: "x86_64", version: "Kernel 3.10.0-514.26.2.el7.x86_64" } }
    2017-09-27T03:07:15.311+0800 I COMMAND  [conn1] command admin.system.users appName: "MongoDB Shell" command: insert { insert: "system.users", documents: [ { _id: "admin.myUserAdmin", user: "myUserAdmin", db: "admin", credentials: { SCRAM-SHA-1: { iterationCount: 10000, salt: "pUdmLObMsG3wKU7MZDFU1g==", storedKey: "wlCaAzPOS+u7CUqzMKxeZB+DFkE=", serverKey: "KwP12FF1ASziFPVstN8mLrPLg+A=" } }, roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ] } ninserted:1 keysInserted:1 numYields:0 reslen:44 locks:{ Global: { acquireCount: { r: 4, w: 4 } }, Database: { acquireCount: { W: 4 } }, Collection: { acquireCount: { w: 3 } } } protocol:op_query 145ms
    2017-09-27T03:07:15.311+0800 I COMMAND  [conn1] command admin.$cmd appName: "MongoDB Shell" command: createUser { createUser: "myUserAdmin", pwd: "xxx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 600000.0 } } numYields:0 reslen:22 locks:{ Global: { acquireCount: { r: 4, w: 4 } }, Database: { acquireCount: { W: 4 } }, Collection: { acquireCount: { w: 3 } } } protocol:op_command 202ms
    • 连接到instance
    [root@localhost ~]# mongo
    MongoDB shell version v3.4.9
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.9
    Server has startup warnings: 
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] 
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
    2017-09-27T03:06:14.971+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2017-09-27T03:06:16.364+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-09-27T03:06:16.365+0800 I CONTROL  [initandlisten] 
    > 
    • 在admin数据库中创建administrator 用户
    > use admin
    switched to db admin
    > db.createUser(
    ...   {
    ...     user: "myUserAdmin",
    ...     pwd: "abc123",
    ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    ...   }
    ... )
    Successfully added user: {
        "user" : "myUserAdmin",
        "roles" : [
            {
                "role" : "userAdminAnyDatabase",
                "db" : "admin"
            }
        ]
    }
    > exit
    bye
    • 重启Mongodb
    使用Ctrl+c退出原mongod
    
    q^H
    ^C2017-09-27T03:07:25.685+0800 I CONTROL  [signalProcessingThread] got signal 2 (Interrupt), will terminate after current cmd ends
    2017-09-27T03:07:25.685+0800 I NETWORK  [signalProcessingThread] shutdown: going to close listening sockets...
    2017-09-27T03:07:25.685+0800 I NETWORK  [signalProcessingThread] closing listening socket: 6
    2017-09-27T03:07:25.685+0800 I NETWORK  [signalProcessingThread] closing listening socket: 7
    2017-09-27T03:07:25.685+0800 I NETWORK  [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
    2017-09-27T03:07:25.685+0800 I NETWORK  [signalProcessingThread] shutdown: going to flush diaglog...
    2017-09-27T03:07:25.685+0800 I FTDC     [signalProcessingThread] Shutting down full-time diagnostic data capture
    2017-09-27T03:07:25.687+0800 I STORAGE  [signalProcessingThread] WiredTigerKVEngine shutting down
    2017-09-27T03:07:25.770+0800 I STORAGE  [signalProcessingThread] shutdown: removing fs lock...
    2017-09-27T03:07:25.770+0800 I CONTROL  [signalProcessingThread] now exiting
    2017-09-27T03:07:25.770+0800 I CONTROL  [signalProcessingThread] shutting down with code:0
    • 开启访问控制启动Mongod
    [root@localhost ~]# mongod --auth --dbpath /var/lib/mongo
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] MongoDB starting : pid=2508 port=27017 dbpath=/var/lib/mongo 64-bit host=localhost.localdomain
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] db version v3.4.9
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] git version: 876ebee8c7dd0e2d992f36a848ff4dc50ee6603e
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] modules: none
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] build environment:
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten]     distmod: rhel70
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2017-09-27T03:07:40.034+0800 I CONTROL  [initandlisten] options: { security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongo" } }
    2017-09-27T03:07:40.054+0800 I -        [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2017-09-27T03:07:40.054+0800 I STORAGE  [initandlisten] 
    2017-09-27T03:07:40.054+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
    2017-09-27T03:07:40.054+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
    2017-09-27T03:07:40.054+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1455M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-09-27T03:07:40.420+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:07:40.422+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data'
    2017-09-27T03:07:40.422+0800 I NETWORK  [thread1] waiting for connections on port 27017
    2017-09-27T03:08:07.458+0800 I NETWORK  [thread1] connection accepted from 127.0.0.1:34810 #1 (1 connection now open)
    2017-09-27T03:08:07.458+0800 I NETWORK  [conn1] received client metadata from 127.0.0.1:34810 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.9" }, os: { type: "Linux", name: "CentOS Linux release 7.3.1611 (Core) ", architecture: "x86_64", version: "Kernel 3.10.0-514.26.2.el7.x86_64" } }
    2017-09-27T03:08:07.477+0800 I ACCESS   [conn1] Successfully authenticated as principal myUserAdmin on admin
    2017-09-27T03:08:07.478+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { getLog: "startupWarnings" }
    2017-09-27T03:08:07.665+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { replSetGetStatus: 1.0, forShell: 1.0 }
    2017-09-27T03:08:26.104+0800 I -        [conn1] end connection 127.0.0.1:34810 (1 connection now open)
    2017-09-27T03:08:29.697+0800 I NETWORK  [thread1] connection accepted from 127.0.0.1:34812 #2 (1 connection now open)
    2017-09-27T03:08:29.697+0800 I NETWORK  [conn2] received client metadata from 127.0.0.1:34812 conn2: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.9" }, os: { type: "Linux", name: "CentOS Linux release 7.3.1611 (Core) ", architecture: "x86_64", version: "Kernel 3.10.0-514.26.2.el7.x86_64" } }
    2017-09-27T03:08:29.713+0800 I ACCESS   [conn2] Successfully authenticated as principal myTester on test
    2017-09-27T03:08:29.714+0800 I ACCESS   [conn2] Unauthorized: not authorized on admin to execute command { getLog: "startupWarnings" }
    2017-09-27T03:08:29.715+0800 I ACCESS   [conn2] Unauthorized: not authorized on admin to execute command { replSetGetStatus: 1.0, forShell: 1.0 }
    • 刚刚新建的用户myUserAdmin连接数据
    [root@localhost ~]# mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
    MongoDB shell version v3.4.9
    connecting to: mongodb://127.0.0.1:27017/
    MongoDB server version: 3.4.9
    >
    创建新数据库test并在其中创建用户myTester
    
    > use test
    switched to db test
    > db.createUser(
    ...   {
    ...     user: "myTester",
    ...     pwd: "xyz123",
    ...     roles: [ { role: "readWrite", db: "test" },
    ...              { role: "read", db: "reporting" } ]
    ...   }
    ... )
    Successfully added user: {
        "user" : "myTester",
        "roles" : [
            {
                "role" : "readWrite",
                "db" : "test"
            },
            {
                "role" : "read",
                "db" : "reporting"
            }
        ]
    }
    > exit
    bye
    • 使用新建的myTester用户连接数据库
    [root@localhost ~]# mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"
    MongoDB shell version v3.4.9
    connecting to: mongodb://127.0.0.1:27017/
    MongoDB server version: 3.4.9

    3.WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.与4.WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.

    这两个问题是CentOS7特有的,因为从CentOS7版本开始会默认启用Transparent Huge Pages(THP) 
    Transparent Huge Pages(THP)本意是用来提升内存性能,但某些数据库厂商还是建议直接关闭THP(比如说Oracle、MariaDB、MongoDB等),否则可能会导致性能出现下降。

    • 查看THP状态
    [root@localhost ~]#  cat /sys/kernel/mm/transparent_hugepage/defrag
    [always] madvise never
    [root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    [always] madvise never
    • 修改系统配置
    [root@localhost ~]# vim /etc/rc.d/rc.local
    
    #!/bin/bash
    # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    #
    # It is highly advisable to create own systemd services or udev rules
    # to run scripts during boot instead of using this file.
    #
    # In contrast to previous versions due to parallel execution during boot
    # this script will NOT be run after all other services.
    #
    # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    # that this script will be executed during boot.
    
    touch /var/lock/subsys/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
    
    
    [root@localhost ~]# chmod +x /etc/rc.d/rc.local
    • 重启虚拟机
    [root@localhost ~]# shutdown -r
    • 再次查看THP状态
    [root@localhost ~]#  cat /sys/kernel/mm/transparent_hugepage/defrag
    always madvise [never]
    [root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    always madvise [never]

    已经改为了禁用THP

    • 启动mongod
    [root@localhost ~]# mongod --auth --dbpath /var/lib/mongo
    2017-09-27T03:40:50.174+0800 I CONTROL  [initandlisten] MongoDB starting : pid=2381 port=27017 dbpath=/var/lib/mongo 64-bit host=localhost.localdomain
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] db version v3.4.9
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] git version: 876ebee8c7dd0e2d992f36a848ff4dc50ee6603e
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] modules: none
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] build environment:
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten]     distmod: rhel70
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2017-09-27T03:40:50.175+0800 I CONTROL  [initandlisten] options: { security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongo" } }
    2017-09-27T03:40:50.195+0800 I -        [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2017-09-27T03:40:50.195+0800 I STORAGE  [initandlisten] 
    2017-09-27T03:40:50.195+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
    2017-09-27T03:40:50.195+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
    2017-09-27T03:40:50.195+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1455M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    2017-09-27T03:40:50.689+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2017-09-27T03:40:50.689+0800 I CONTROL  [initandlisten] 
    2017-09-27T03:40:50.692+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data'
    2017-09-27T03:40:50.693+0800 I NETWORK  [thread1] waiting for connections on port 27017
    • 进入数据库
    [root@localhost ~]# mongo
    MongoDB shell version v3.4.9
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.9
    > 
  • 相关阅读:
    Poj-1088-滑雪
    Poj-2250-Compromise
    CF
    KMP算法
    01背包
    NY 269 VF
    PHP--1+2+3……100=?
    PHP企业发放的奖金--if...elseif...
    2019年中级考试题(附答案)
    PHP的IF条件语句-- 输入一个数字进行判断等级
  • 原文地址:https://www.cnblogs.com/deverz/p/8806586.html
Copyright © 2011-2022 走看看