HƯỚNG DẪN Setup Mongodb on Centos 6

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 7/2/17.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    MongoDB là một mã nguồn mở và là một tập tài liệu dùng cơ chế NoSQL để truy vấn, nó được viết bởi ngôn ngữ C++. Chính vì được viết bởi C++ nên nó có khả năng tính toán với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện nay.

    Thay vì lưu trữ dữ liệu dưới dạng bảng và các tuple như trong các CSDL quan hệ thì nó lưu trữ dữ liệu dưới dạng JSON (trong MongoDB được gọi là dạng BSON vì nó lưu trữ dưới dạng binary từ 1 JSON document).
    Hôm nay tôi sẽ hướng dẫn các bạn cài đặt và cấu hình mongodb trên centos 6.

    I. Cài đặt mongodb
    1. Nâng cấp gcc
    Để cài đặt phiên bản mongodb 3.2 ta cần nâng cấp lên gcc 4.8.2. Ta sẽ sử dụng devtoolset-2 để có thể nâng cấp gcc
    Import key và tải về repository nơi lưu trữ devtoolset-2
    Mã:
    rpm --import http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern
    Mã:
    wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
    Tiến hành cài đặt các gói công cụ cần thiết
    Mã:
    yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++


    Thay đổi gcc mặc định
    Sử dụng câu lệnh sau và kiểm tra phiên bản:
    Mã:
    scl enable devtoolset-2 bash
    Thay thế đường dẫn và liên kết
    Mã:
    export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc
    export CXX=/opt/rh/devtoolset-2/root/usr/bin/g++
    export CPP=/opt/rh/devtoolset-2/root/usr/bin/cpp
    export LD=/opt/rh/devtoolset-2/root/usr/bin/ld
    
    Mã:
    ln -sf /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc
    ln -sf /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++
    ln -sf /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++
    ln -sf /opt/rh/devtoolset-2/root/usr/bin/cpp /usr/bin/cpp
    

    2. Cài đặt scons
    Tải về gói cài đặt
    Mã:
    mkdir –p setup/
    wget ftp://rpmfind.net/linux/sourceforge/s/sc/scons/scons/2.3.3/scons-2.3.3-1.noarch.rpm
    
    Tiến hành cài đặt
    Mã:
    rpm -ivh scons-2.3.3-1.noarch.rpm

    3. Cài đặt mongodb
    Tải về gói cài đặt moongodb 3.2.12
    Mã:
     wget http://downloads.mongodb.org/src/mongodb-src-r3.2.12.tar.gz 
    Giải nén và chạy lệnh để tiến hành build, install
    Mã:
    tar -zxf mongodb-src-r3.2.12.tar.gz
    cd mongodb-src-r3.2.12
    scons all
    scons install
    


    II. Cấu hình và khởi động mongodb
    1. Tạo thư mục lưu trữ dữ liệu
    Mã:
    mkdir –p /data/db
    mkdir –p /data/db1
    

    2. Sao chép tập tin cấu hình vào thư mục /etc
    Mã:
    cp /root/setup/mongodb-src-r3.2.12/rpm/mongod.conf /etc/
    Mã:
    vi /etc/mongod.conf
    Thêm 2 dòng này vào để sử dụng cho việc chứng thực
    Mã:
    #security:
    security:
      authorization: enabled
    

    3. Sao chép các tập tin nhị phân
    Sử dụng các lệnh sau:
    Mã:
    cp /root/setup/mongodb-src-r3.2.12/build/opt/mongo/mongod /usr/local/bin/
    cp /root/setup/mongodb-src-r3.2.12/build/opt/mongo/mongo /usr/local/bin/
    cp /root/setup/mongodb-src-r3.2.12/build/opt/mongo/mongoperf /usr/local/bin/
    cp /root/setup/mongodb-src-r3.2.12/build/opt/mongo/mongos /usr/local/bin/
    chmod 755 /usr/local/bin/mongod /usr/local/bin/mongo /usr/local/bin/mongos /usr/local/bin/mongoperf
    

    4. Cấp quyền thư mục log, run
    Mã:
    chmod 755 /var/run/mongodb /var/log/mongodb
    

    5. Xóa thư mục cài đặt của mongodb để giải phóng bộ nhớ
    Mã:
    cd /root/setup/
    rm -rf mongodb-src-r3.2.12
    


    III. Kiểm tra và tạo superuser
    1. Kiểm tra và thực hiện một vài ví dụ
    Chạy câu lệnh sau
    Mã:
    /usr/local/bin/mongod -port 27017 --fork  --dbpath /data/db1 --logpath /var/log/mongodb/mongodb.log --logappend
    
    Đăng nhập vào
    Mã:
    mongo
    Ví dụ
    Mã:
    > use aluhost
    > db.createCollection("hosting")
    > show collections
    > show dbs
    

    2. Tạo superuser
    Đăng nhập vào mongodb
    Mã:
    mongo
    Thực hiện các lệnh sau
    Mã:
    > use admin
    > db.createUser(
      {
      user: "root",
      pwd: "admin123",
      roles: [ { role: "root", db: "admin" } ]
      })
    >exit
    
    Bạn có thể thay thế tên user và password theo nhu cầu của bạn

    3. Tạo script khởi động và dừng mongodb
    Mã:
    vi /etc/init.d/mongod
    Nội dung của tập tin là:
    Mã:
    #!/bin/bash
    
    mongod=/usr/local/bin/mongod
    mongod_log=/var/log/mongodb/mongodb.log
    prog=mongod.sh
    RETVAL=0[/SIZE][/FONT]
    
    [FONT=Times New Roman][SIZE=4]stop() {
      grep_mongo=`ps aux | grep -v grep | grep "${mongod}"`
      if [ ${#grep_mongo} -gt 0 ]
      then
      echo "Stop MongoDB."
      PID=`ps ax | grep -v grep | grep "${mongod}" | awk '{ print $1 }'`
      `kill -9 ${PID}`
      RETVAL=$?
      else
      echo "MongoDB is not running."
      fi
    }
    
    start() {
      grep_mongo=`ps aux | grep -v grep | grep "${mongod}"`
      if [ -n "${grep_mongo}" ]
      then
      echo "MongoDB is already running."
      else
      echo "Start MongoDB."
      /usr/local/bin/mongod --auth --fork --dbpath /data/db1 --logpath /var/log/mongodb/mongodb.log --logappend
      RETVAL=$?
      fi
    }
    
    case "$1" in
      start)
      start
      ;;
      stop)
      stop
      ;;
      restart)
      stop
      start
      ;;
      *)
      echo $"Usage: $prog {start|stop|restart}"
      exit 1
    esac
    exit $RETVAL
    
    Lưu lại và cấp quyền cho nó:
    Mã:
    chmod 755 /etc/init.d/mongod

    4. Tiến hành khởi động lại mongodb
    Sử dụng lệnh
    Mã:
     service mongod restart 

    5. Kiểm tra việc xác thực:
    5.1 Đăng nhập không xác thực

    Mã:
     mongo -port 27017 
    Thực hiện một số lệnh:
    Mã:
    > use aluhost
    > show collections
    2017-02-07T01:47:49.613-0500 E QUERY  [thread1] Error: listCollections failed: {
      "ok" : 0,
      "errmsg" : "not authorized on aluhost to execute command { listCollections: 1.0, filter: {} }",
      "code" : 13
    } :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:773:1
    DB.prototype.getCollectionInfos@src/mongo/shell/db.js:785:19
    DB.prototype.getCollectionNames@src/mongo/shell/db.js:796:16
    shellHelper.show@src/mongo/shell/utils.js:754:9
    shellHelper@src/mongo/shell/utils.js:651:15
    @(shellhelp2):1:1
    
    Ta thấy thông báo lỗi hiện ra do chưa xác thực.

    5.2 Đăng nhập sử dụng xác thực
    Mã:
     mongo -port 27017 -u "root" -p "admin123" -authenticationDatabase "admin"
    
    Thực hiện một số lệnh:
    Mã:
    > use aluhost
    switched to db aluhost
    > show collections
    hosting
    > db.createCollection("domain")
    { "ok" : 1 }
    > show collections
    domain
    hosting
    
    Không có lỗi nào xảy ra điều này cho thấy ta đã thành công.

    IV. Cài đặt php-mongo
    Ta cần cài đặt php trước khi thực hiện bước này. Tham khảo bài viết này:
    Tải gói cài đặt về
    Mã:
     wget https://pecl.php.net/get/mongo-1.6.8.tgz 
    Giải nén và tiến hành cài đặt
    Mã:
    tar xzf mongo-1.6.8.tgz
    cd mongo-1*
    phpize
    ./configure --enable-mongo --with-php-config=php-config --prefix=/usr/local
    make && make install
     
    Lưu ý: Ta cần tìm xem phpize, php-config nằm ở đâu trong hệ thống bằng câu lệnh này

    Mã:
    find / -name phpize
    find / -name php-config
    
    Thêm extension mongo.so vào trong tập tin php.ini rồi tiến hành khởi động lại để áp dụng thay đổi
    Mã:
     vi /usr/local/lib/php/php.ini 
    Mã:
    ;extension=php_pgsql.dll
    ;extension=php_pspell.dll
    ;extension=php_shmop.dll
    extension=mongo.so
    
    Bạn có thể tìm tập tin đó bằng cách sử dụng lệnh này
    Mã:
     find / -name php.ini
    Lưu tập tin và khởi động lại để áp dụng thay đổi
    Mã:
     service httpd restart 
    V. Kiểm tra sau khi cài đặt
    Sử dụng lệnh sau:
    Mã:
     php –i | grep mongo  
    Kết quả:
    Mã:
    mongo
    mongo.allow_empty_keys => 0 => 0
    mongo.chunk_size => 261120 => 261120
    mongo.cmd => $ => $
    mongo.default_host => localhost => localhost
    mongo.default_port => 27017 => 27017
    mongo.is_master_interval => 15 => 15
    mongo.long_as_object => 0 => 0
    mongo.native_long => 1 => 1
    mongo.ping_interval => 5 => 5
    OLDPWD => /root/setup/mongo-1.6.8
    _SERVER["OLDPWD"] => /root/setup/mongo-1.6.8
    
    Kiểm tra thông qua tập tin phpinfo.php

    [​IMG]
     

Chia sẻ trang này

Đang tải...