在虚拟环境中安装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!