服務器(CentOS)安裝配置mongodb

安裝須知

  1. mongo DB下載地址mongodb官網下載
  2. Linux須知知識:

安裝過程

  1. 服務器下載安裝包node

    • 下載: curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.6.tgz;
    • 解壓:tar -zxvf mongodb-linux-x86_64-rhel62-4.0.6/;
    • 移動到須要存放的目錄下mv mongodb-linux-x86_64-rhel62-4.0.6/ /usr/local/mongodb
  2. 配置環境變量:export PATH=/usr/local/mongodb/bin:$PATH,直接執行此命令,只會建立出臨時的環境變量,即從新斷開鏈接服務器後會失效;linux

    • 環境變量持久化配置:須要將mongod路徑添加到系統路徑中,
    1. /etc/profile文件中,添加 export PATH=/usr/local/mongodb/bin:$PATH;
    2. 執行source /etc/profile,使系統環境變量當即生效
  3. 驗證是否安裝成功:mongod --versiongit

    db version v4.0.6
    git version: caa42a1f75a56c7643d0b68d3880444375ec42e3
    OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    allocator: tcmalloc
    modules: none
    build environment:
        distmod: rhel62
        distarch: x86_64
        target_arch: x86_64

mongod啓動配置

1. 建立數據庫存放和日誌目錄

  • 由於MongoDB的數據存儲在data目錄的db目錄下,而該目錄在安裝過程當中並不會自動建立,因此須要手動建立data目錄,並在data目錄中建立db目錄。
  • mongoDB啓動默認使用的數據哭存儲目錄是根目錄/data/db;固然也能夠在其餘目錄下建立,而後經過--dbpath來指定;
  • 根目錄下建立:mkdir -p /data/db;這裏爲了後期好查找,就不建立在根目錄下,而是放在mongodb目錄下/usr/local/mongodb/data/db
  • 日誌目錄建立/usr/local/mongodb/logs

2. 配置mongod啓動文件

  • /usr/local/mongodb/etc下建立配置文件mongod.config:
dbpath=/usr/local/mongodb/data   # 數據庫存放位置(以前建立的)
logpath=/usr/local/mongodb/logs/mongodb.log   # 數據庫日誌存放位置(以前建立的)
port=27017
fork=true   #後臺運行
auth=false  # 初次配置先關了權限驗證登錄模式
journal=false

3. 啓動mongod

  • 啓動:mongod -f /usr/local/mongod/etc/mongod.config;
  • 進入數據庫管理命令界面:mongo
  • 建立數據庫管理角色
db.createUser({user:'root',pwd:'1234567',roles:[{'role':'userAdminAnyDatabase','db':'admin'}]})
  • 運行結果:
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}
  • 退出服務,謹慎使用kill直接去殺掉mongodb進程,可使用db.shutdownServer()關閉.
  • 使用權限方式啓動MongoDB,在配置文件中添加:auth=true , 而後啓動:mongod -f /usr/local/mongod/etc/mongod.config
  • 進入mongo shell,使用admin數據庫use admin並進行驗證db.auth('root','123456'),驗證成功返回1失敗返回0;若是不驗證或驗證失敗,是作不了任何操做的

4.MongoDB設置爲系統服務而且設置開機啓動

  • 在服務器的系統服務文件中添加mongod配置:vim /etc/rc.d/init.d/mongod,輸入:
start() {
/usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/etc/mongod.config
}

stop() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongod.config --shutdown
}
case "$1" in
  start)
 start
 ;;

stop)
 stop
 ;;

restart)
 stop
 start
 ;;
  *)
 echo
$"Usage: $0 {start|stop|restart}"
 exit 1
esac
  • 保存並添加腳本執行權限:chmod +x /etc/rc.d/init.d/mongod;
  • 如今能夠試試使用service mongod [start|stop|restart|try-restart|reload|force-reload| status]來直接管理MongoDB服務啦;
  • 試試關閉服務:
[lwh@insnce-4ep /]# service mongod stop
2019-03-10T16:45:22.360+0800 I CONTROL  [main] log file "/usr/local/mongodb/logs/mongodb.log" exists; moved to "/usr/local/mongodb/logs/mongodb.log.2019-03-10T08-45-22".
killing process with pid: 10652
  • 試試開啓服務:service mongod start;ok!!

5. 本地遠程鏈接服務器數據庫

  • 鏈接命令:mongo 42.114.29.206:27017/test -u user -p password
  • 報錯鏈接失敗,拒絕鏈接;mongodb

    • 緣由:雲服務器中安裝MongoDB後(默認端口27017),默認綁定IP爲127.0.0.1,這就致使外部沒法訪問;
    • 決解: 修改mongod.config配置文件,添加bind_ip=0.0.0.0綁定公網IP;
    • 重啓mongodb服務service mongod restart
    • 發現報錯:
about to fork child process, waiting until server is ready for connections.
forked process: 11300
ERROR: child process failed, exited with error number 48
  • 緣由:應該是以前沒有正常關閉mongodb引發的,好比直接 kill -9 <pid>致使;
  • 決解:shell

    1. 找到data/mongod.lock文件,並刪除mongod.lock
    2. 以修復方式啓動mongodmongod -f usr/local/mongodb/etc/mongod.config --repair;
    3. 再次啓動service mongod start
「積跬步、行千里」—— 持續更新中~,喜歡的話留下個贊和關注哦!
相關文章
相關標籤/搜索