Mongodb 在CentOS6.2上的安装

来源:互联网 发布:网络自制剧最新排行榜 编辑:程序博客网 时间:2024/05/21 23:52
1.下载mongodb
  从http://www.mongodb.org/downloads下载最新版本的mongodb,这里下载的是

  mongodb-linux-x86_64-2.2.1.tgz

 [root@lfy mongodb]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.1.tgz

2.解压和安装mongodb

  [root@lfy mongodb]# tar zxvf mongodb-linux-x86_64-2.2.1.tgz

  [root@lfy mongodb]# mv mongodb-linux-x86_64-2.2.1 /opt/mongodb

  #创建mongodb的数据目录和log目录

  [root@lfy mongodb]# mkdir /opt/mongodb/data
  [root@lfy mongodb]# mkdir /opt/mongodb/log

#创建mongodb的log文件

  [root@lfy mongodb]# touch /opt/mongodb/log/mongodb.log

  #创建mongodb的配置目录

  [root@lfy mongodb]# mkdir /opt/mongodb/config

  #创建mongodb服务停止文件

  [root@lfy mongodb]# vi

  --输入下面内容

#!/bin/bash

pid=`ps -o pid,command ax | grep mongod | awk '!/awk/ && !/grep/ {print $1}'`;
if [ "${pid}" != "" ]; then
kill -2 ${pid};
fi   

  --写入到mongodb-stop文件

  :w /opt/mongodb/mongodb-stop

  :wq

  #创建mongodb服务启动文件
  [root@lfy mongodb]# vi
  --输入下面内容
#!/bin/bash
/opt/mongodb/bin/mongod --config /opt/mongodb/config/mongodb.cnf \
## --upgrade \ ##runs a database upgrade option if needed \  

  --写入到mongodb-start文件
  :w /opt/mongodb/mongodb-start
  :wq

  #创建配置文件/opt/mongodb/config/mongodb.cnf
  [root@lfy mongodb]# vi
  --输入下面内容
# Configuration Options for MongoDB
#
# For More Information, Consider:
# - Configuration Parameters: http://www.mongodb.org/display/DOCS/Command+Line+Parameters
# - File Based Configuration: http://www.mongodb.org/display/DOCS/File+Based+Configuration
dbpath = /opt/mongodb/data
logpath = /opt/mongodb/log/mongodb.log
logappend = true
bind_ip = 192.168.10.21
port = 27017
fork = true
auth = true
# noauth = true

  --写入到mongodb文件
  :w /opt/mongodb/config/mongodb.cnf
  :wq

注意:其中192.168.10.21是安装mongodb的服务器IP地址,即CentOS6.2使用的IP。

  #增加mongodb-start和mongodb-stop的执行权限

  [root@lfy mongodb]# chmod +x /opt/mongodb/mongodb-start 
  [root@lfy mongodb]# chmod +x /opt/mongodb/mongodb-stop


  #创建MongoDB启动脚本init-rpm.sh
  [root@lfy mongodb]# vi
  --输入下面内容
#! /bin/sh
#
# mongodb – this script starts and stops the mongodb daemon
#
# chkconfig: - 85 15
# description: MongoDB is a non-relational database storage system.
# processname: mongodb
# config: /opt/mongodb/config/mongodb.cnf
# pidfile: /opt/mongodb/mongo.pid
PATH=/opt/mongodb/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=mongodb
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting MongoDB... "
su - mongodb -c "/opt/mongodb/mongodb-start"
;;
stop)
echo -n "Stopping MongoDB"
/opt/mongodb/mongodb-stop
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop}" >&2
exit 1
;;
esac
exit 0

  :w /etc/init.d/mongodb
  :wq

  #增加启动脚本的执行权限

  [root@lfy mongodb]# chmod +x /etc/rc.d/init.d/mongodb /etc/init.d/mongodb

  #设置mongodb服务的运行级别
  [root@lfy mongodb]# chkconfig --add mongodb
  [root@lfy mongodb]# chkconfig --level 345 mongodb on
  
  #增加mongodb的用户组和用户
  [root@lfy mongodb]# grep mongodb /etc/group
  [root@lfy mongodb]# groupadd mongodb
  [root@lfy mongodb]# grep mongodb /etc/group
  mongodb:x:502:

  [root@lfy mongodb]# useradd mongodb -g mongodb -M -r --home-dir /opt/mongodb 
  [root@lfy mongodb]# grep mongodb /etc/passwd
  mongodb:x:498:502::/opt/mongodb:/bin/bash

  #给mongodb:mongodb增加执行权限

  [root@lfy mongodb]# chown mongodb:mongodb -R /opt/mongodb/


3.启动mongodb

  [root@lfy mongodb]# service mongodb start
  Starting MongoDB... all output going to: /opt/mongodb/log/mongodb.log
  forked process: 32190
  child process started successfully, parent exiting

  ...
  在浏览器中输入http://192.168.10.21:28017/,可以查看mongodb的状态

4.远程链接
  打开27017和28017端口

[root@lfy mongodb]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
[root@lfy mongodb]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 28017 -j ACCEPT

[root@lfy mongodb]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

  # 查看规则是否生效

  [root@lfy mongodb]# service iptables status
或者:

  [root@lfy mongodb]# iptables -L -n

5.本地链接mongodb错误
[lify@lfy ~]$ /opt/mongodb/bin/mongo
MongoDB shell version: 2.2.1
connecting to: test
Tue Nov 27 19:03:22 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

  原因是,mongodb启动时,--bind_ip绑定服务器IP,此参数为安全起见建议使用127.0.0.1(这里是本地IP:192.168.10.21),因为如果不设置的话,默认远程是可以连接的

  在本地链接的时候,添加上IP:端口号就可以了
[lify@lfy ~]$ /opt/mongodb/bin/mongo 192.168.10.21:27017
MongoDB shell version: 2.2.1
connecting to: 192.168.10.21:27017/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
> db
test

设置用户:
1.不能访问mongodb,因为在配置文件中设置了auth = true
[lify@lfy ~]$ /opt/mongodb/bin/mongo 192.168.10.21:27017
MongoDB shell version: 2.2.1
connecting to: 192.168.10.21:27017/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
> db
test
> show collections;
Tue Nov 27 19:06:53 uncaught exception: error: {
    "$err" : "unauthorized db:test ns:test.system.namespaces lock type:1 client:192.168.10.21",
    "code" : 10057
}
> 

2.停db,修改设置后再启动db
[root@lfy mongodb]# service mongodb stop

Stopping MongoDB
[root@lfy mongodb]# vi /opt/mongodb/config/mongodb.cnf 


  设置auth = false
[root@lfy mongodb]# service mongodb start


3.添加超级管理员

[lify@lfy ~]$ /opt/mongodb/bin/mongo 192.168.10.21:27017
MongoDB shell version: 2.2.1
connecting to: 192.168.10.21:27017/test
> show dbs
local    (empty)
> use admin
switched to db admin
> show collections
> db
admin
> db.addUser("root", "admin");
{
    "user" : "root",
    "readOnly" : false,
    "pwd" : "bb961f1e866e2d4a2b85c2675b6a3c3b",
    "_id" : ObjectId("50b4e79eaeb4e7fe8996721c")
}
> show collections;
system.indexes
system.users
> db.system.users.find();
{ "_id" : ObjectId("50b4e79eaeb4e7fe8996721c"), "user" : "root", "readOnly" : false, "pwd" : "bb961f1e866e2d4a2b85c2675b6a3c3b" }
>  exit
bye
[lify@lfy ~]$ 

4.恢复设置
[root@lfy ~]# service mongodb stop

Stopping MongoDB
[root@lfy ~]# vi /opt/mongodb/config/mongodb.cnf 

设置auth = true
[root@lfy ~]# service mongodb start
Starting MongoDB... all output going to: /opt/mongodb/log/mongodb.log
forked process: 32393
child process started successfully, parent exiting

5.创建新的db,并建立新用户,插入数据
[lify@lfy ~]$ /opt/mongodb/bin/mongo 192.168.10.21
MongoDB shell version: 2.2.1
connecting to: 192.168.10.21/test
> db
test
> use store
switched to db store
> db
store
> db.customers.insert({key:1,name:"yang"});

Tue Nov 27 19:33:08 uncaught exception: getlasterror failed: { "errmsg" : "need to login", "ok" : 0 }

/*插入数据不成功,用管理员登录,并建立新账户*/

> use admin
switched to db admin
> db.auth('root','admin');
1
> show dbs;
admin    0.203125GB
local    (empty)
store    (empty)
> use store
switched to db store
> db
store
> db.addUser('yang','yang');
{
    "user" : "yang",
    "readOnly" : false,
    "pwd" : "faa29b3be8dab9ff195ab49c56bd133c",
    "_id" : ObjectId("50b4ebc2363cd6ea440763de")
}
> db

store

/*重新登录*/

> db.auth('yang','yang');
1
> show collections;
system.indexes
system.users
> db.customers.insert({key:1,name:"yang"});
> show collections;
customers
system.indexes
system.users
> db.customers.find();
{ "_id" : ObjectId("50b4ebec363cd6ea440763df"), "key" : 1, "name" : "yang" }
> 


mongodb的安装介绍完毕。


附件:

有关于安装参数的说明:

--dbpath 是数据文件所在目录

--logpath 是日志文件所在文件路径,此参数必须为文件,不能为文件目录,否则会导致安装失败

以上两个参数必须设置

--logappend 日志以追加的方式写入

--directoryperdb 为每个数据库建立单独的目录

--bind_ip 绑定服务器IP,此参数为安全起见建议使用127.0.0.1,因为如果不设置的话,远程是可以连接的

--port  端口号

--install 以服务形式安装

如果需要删除 MongoDB 服务请使用 mongod --remove

再执行 net start "MongoDB" 即可启动服务。

有关于安装参数的说明:

--dbpath 是数据文件所在目录

--logpath 是日志文件所在文件路径,此参数必须为文件,不能为文件目录,否则会导致安装失败

以上两个参数必须设置

--logappend 日志以追加的方式写入

--directoryperdb 为每个数据库建立单独的目录

--bind_ip 绑定服务器IP,此参数为安全起见建议使用127.0.0.1,因为如果不设置的话,远程是可以连接的

--port  端口号

--install 以服务形式安装

如果需要删除 MongoDB 服务请使用 mongod --remove

 --mongo ip:port/dbname 连接到远程服务器的mongodb,如果不加后面的参数,则默认连接到本地的test库




 
 
0 0
原创粉丝点击