MongoDB与PyMongo的安装(Linux/Windows XP)
近期在看《Introduction to Tornado》,其中第4章《数据库》部分使用的是MongoDB进行讲解,但是书中并没有对MongoDB的安装以及PyMongo的安装进行讲解,因此,查阅网上资料后,将安装过程和部分注意事项记录在本文中。本文中的安装涉及Ubuntu和Windows XP两个操作系统。
1.环境
环境1:
OS:Ubuntu 13.04 64bits
Python:2.7.4
MongoDB:2.4.5
PyMongo:2.5.2
环境2:
OS:Windows XP 32bits
Python:2.7.2
MongoDB:2.0.9
PyMongo:2.5.2
2.MongoDB的安装与使用
2.1 下载
我们可以在MongoDB的官方网站(http://www.mongodb.org/downloads)下载对应操作系统及位数版本的MongoDB二进制文件压缩包。
Linux:
这里,我们下载最新的Linux 64位版本(mongodb-linux-x86_64-2.4.5.tgz)。
Windows:
由于MongoDB从2.2版本开始不再支持32位的Windows XP系统,因此我们下载2.0的Windows版本(mongodb-win32-i386-2.0.9.zip)。
Windows 7或server 2008 R2及以上版本可以下载最新的MongoDB版本,其中64位系统可以选择下载2008R2版本(mongodb-win32-x86_64-2008plus-2.4.5.zip)。
2.2 解压
由于下载的是已经编译好的二进制文件压缩包,因此解压后即可使用,不需要编译和安装过程。
Linux:
将压缩包解压到期望的目录中:
tar zxvf mongodb-linux-x86_64-2.4.5.tgz
Windows:
将压缩包解压到期望的目录中即可。
2.3 创建数据库文件目录
Linux:
Linux下MongoDB的默认目录是/data/db,因此需要提前创建该目录,并修改权限:
1 2 |
sudo mkdir -p /data/db sudo chmod -R 777 /data/db |
Windows:
Windows下MongoDB的默认目录是C:\data\db,因此需要提前创建该目录。
当然,我们也可以在其他位置创建目录,此时需要在启动服务器时使用–dbpath选项,如:
--dbpath=F:\data\db
2.4 启动服务端
2.4.1 命令
Linux:
在shell下进入bin目录,执行:
./mongod -journal -rest --smallfiles
Windows:
在控制台下进入bin目录,执行:
mongod.exe -journal -rest --smallfiles
2.4.2 参数
–dbpath:数据库目录;
–logpath:log目录;
-journal:代表要写日志;
-rest:代表可以允许客户端通过rest API访问MongoDB Server;
-maxConns:可以接受的最大TCP连接数。
2.4.3 常见问题
问题现象:
ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /data/db/journal or use –smallfiles
发生原因:
硬盘空间不足。
解决方法:
使用–smallfiles参数。
2.5 启动客户端
2.5.1 命令
Linux:
在shell下进入bin目录,执行:
./mongo
Windows:
在控制台下进入bin目录,执行:
mongo.exe
2.5.2 常用操作
show dbs:显示数据库名称;
show collections:显示当前数据库中的集合;
show users:显示当前数据库中的用户;
use
db.help():数据库方法帮助;
db.foo.help():集合方法帮助;
db.foo.save( { a : 1} ):在集合foo中,保存一个名为a值为1的文档;
db.foo.find( { a : 1} ):列出满足条件“a==1”的集合foo的对象。
在MongoDB中,使用Database或Collection之前不需要提前创建,在使用的过程中会自动创建。
3.PyMongo的安装与使用
3.1 下载与安装
3.1.1 安装
Linux
使用pip进行安装:
sudo pip install pymongo
Windows
在https://pypi.python.org/pypi/pymongo/中下载对应的版本,双击执行安装即可。
3.1.2 安装失败?
以下是一些可能会导致安装失败的情景:
1.本机联网异常
检查本机联网是否正常,IP地址和DNS地址是否配置正确。
如果IP地址没有正确配置,请先根据需求配置。
如果IP地址已正确配置,但无法访问一些网站,请检查DNS服务器是否正确配置。sudo vi /etc/resolv.conf
,添加nameserver 8.8.8.8
或当地DNS服务器地址。
2.致命错误: Python.h:没有那个文件或目录
原因是没有安装python-dev,执行下面命令安装:
sudo apt-get install python-dev
3.There was a problem confirming the ssl certificate
pip 1.3.1的部分版本对于SSL的处理有bug,如果碰到本问题需要降级到1.2.1版本解决(参考)。
easy_install pip==1.2.1
3.2 简单使用
1 2 3 4 5 6 7 8 9 10 11 |
>>> import pymongo >>> conn = pymongo.Connection("localhost", 27017) >>> db = conn.example >>> db.collection_names() [] >>> widgets = db.widgets >>> widgets.insert({"foo": "bar"}) ObjectId('51eddda13efc6d0d0c9652b6') >>> db.collection_names() [u'widgets', u'system.indexes'] >>> |
非常感谢!成功解决我的问题。我就是遇到两个问题是 data/db的写入权限不够, 另外是系统内存不够。