在虚拟环境中安装MongoDB

開發環境

    • 仮想環境

 

    • CentOS6.6 (Virtual box, Vagrant)

 

    • ホストOS

 

    • Windows8.1

 

    • 仮想環境のIPアドレス

 

    192.168.33.10

在虚拟环境中安装MongoDB。

在虚拟环境中准备好。

$ sudo vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1
$ sudo yum repolist
$ sudo yum install mongo-10gen mongo-10gen-server

使用GUI界面从主机PC操作虚拟环境中的MongoDB。

打开端口

$ sudo vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# 下記一行を追加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
$ sudo service iptables restart

指定要用于MongoDB的IP地址。

# Listen to local interface only. Comment out to listen on all interfaces.
# bind_ip=127.0.0.1
bind_ip=127.0.0.1,192.168.33.10

由于发生了无法从内部连接的问题,我们在bind_ip中加入了127.0.0.1。

启动

$ sudo service mongod start

如果无法使用此方法启动,请使用以下命令进行启动。
然而,必须保持该shell处于开启状态。

$ mongod                                         

请下载Mongo Express

请下载

在C盘直接下级创建一个名为mongodb的文件夹,并在那里下载工具。

$ cd C:\mongodb
$ npm install https://github.com/andzdroid/mongo-express/tarball/master
$ cd node_modules/mongo-express
$ cp config.default.js config.js

修改设置文件

  // 仮想環境のIPアドレスを指定
//   server: 'localhost',
   server: '192.168.33.10',

~~中略~~

  // Basic認証を外しておく
//  useBasicAuth: true,
  useBasicAuth: false,

工具启动

$ node app
Mongo Express server listening on port 8081
Database connected!
Admin Database connected

从主机PC的浏览器访问工具。

提示

停止服务

$ sudo service mongod stop

启动Shell

$ mongo
MongoDB shell version: 2.6.10
connecting to: test
> 

“启动mongodb服务失败” mongodb

寻找并删除.lock文件

$ find / -name mongod.lock -type f
$ rm -f /var/lib/mongo/mongod.lock /usr/local/var/mongod/mongod.lock

2. 数据库的修复

$ mongod --repair --dbpath=/data/db/

3. 权限确认

我发现问题的原因在于这里……在调查用于使用MongoDB的所有文件的权限时,发现了一些文件被设置为root用户。

改变权限…

$ chown mongod:mongod /var/log/mongodb/mongod.log

成功启动!

$ service mongod start
$ ~略~     [  OK  ]

我在 Stackoverflow 上得到了帮助。

尽管「mongod」服务已经启动,但无法使用「mongo」 shell!

当在shell中键入mongo命令时,似乎会出现未指定本地IP的问题…
⇒听说最好要进行指定!

$ vim /etc/mongod.conf

~略~
bind_ip=127.0.0.1,192.168.33.10
~略~

保存并重新启动服务后,我可以使用”mongo” shell!

广告
将在 10 秒后关闭
bannerAds