1.下载MongoDB
成都创新互联IDC提供业务:温江服务器租用,成都服务器租用,温江服务器租用,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。
2.解压文件到某目录下,然后重命名:
[root@localhost var]# tar -xzvf mongodb-linux-x86_64-enterprise-rhel62-3.4.9.tgz
[root@localhost var]# mv mongodb-linux-x86_64-enterprise-rhel62-3.4.9 /usr/local/mongodb
bin下的mongod就是MongoDB的服务端进程,mongo就是其客户端,其它的命令用于MongoDB的其它用途如MongoDB文件导出等。
3.启动MongoDB.
要先建立好MongoDB 存放数据文件和日志文件的目录,此处建立在/data下:
[root@localhost var]# cd /data/db
[root@localhost db]# mkdir mongodb_data
[root@localhost db]# mkdir mongodb_log
[root@localhost db]# ls
mongodb_data mongodb_log
在MongoDB安装目录下的bin下使用mongod启动MongoDB,
./mongod --dbpath=/data/db/mongodb_data/ --logpath=/data/db/mongodb_log/mongodb.log --logappend&
等待启动成功后,可查看是否启动成功了,默认端口号是27017,当然在启动时也可以指定未使用的其它端口。
先通过查看端口号看MongoDB是否启动了。
[root@localhost /db]# netstat -lanp | grep "27017"
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 2442/mongod
unix 2 [ ACC ] STREAM LISTENING 18203 2442/mongod /tmp/mongodb-27017.sock
可以看到,已启动成功,现在使用mongo客户端访问一下该数据库。
[root@localhost bin]# ./mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
connecting to: test
>
安装成功
4.额外工作。
把mongod放到服务自启动项中
编辑/etc/rc.d/rc.local,加入下述代码然后再保存即可。
#add mongonDB service
rm -rf /data/db/mongodb_data/* && /usr/local/mongodb/bin/mongod --dbpath=/data/db/mongodb_data/ --logpath=/data/db/mongodb_log/mongodb.log --logappend&
我们重启计算机再看MongoDB是否启动,重启后可以直接使用 mongo命令登录,最终发现是可以成功的。
另外,我们使用mongo命令登录 MongoDB还要转到mongo命令所在目录再执行./mongo,这样是不是有些麻烦?因此,我们可以简化这点,将该命令文件copy到/usr/bin下,这样就可以在任何目录下使用mongo命令了。
[root@localhost bin]# ls
bsondump dbbak mongo mongod mongodump mongoexport mongofiles mongoimport mongorestore mongos mongosniff mongostat
[root@localhost bin]# cp mongo /usr/bin/
转到任一目录试下mongo命令:
[root@localhost bin]# cd /
[root@localhost /]# mongo
MongoDB shell version: 1.8.1
connecting to: test
>
可以看到登录成功了,说明我们可以像使用ls命令一样使用mongo命令了。
连接数据库(如果test不存在,则直接创建一个test):
use test
显示数据库:
show dbs
插入一条记录(切换到指定数据库下之后,需要插入至少一个文档后才会在show dbs中显示数据库名):
db.items.insert({"name":"yiibai tutorials"})
创建用户和密码(在admin库上):
db.createUser({user: "lich",pwd: "goodjob1234",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
验证用户权限(返回1则用户存在):
db.auth('lich','goodjob1234')
查看admin库里面的全部用户:
use admin;
db.system.users.find();
查看所有表:
show tables;
另外除了以上的默认启动方式,还可以通过配置mongod.conf的方式来启动mongodb(未测试成功)
启动MongoDB有2种方式,一种是直接默认启动,另一种是指定配置文件。启动方式如下:
1: /etc/init.d/mongod start 或service mongod start
2: mongod --config /etc/mongodb.conf
下面我们看看配置文件:
vi /etc/mongod.conf
# 日志文件位置
logpath=/var/log/mongo/mongod.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
# 默认27017
#port = 27017
# 数据库文件位置
dbpath=/var/lib/mongo
# 启用定期记录CPU利用率和 I/O 等待
#cpu = true
# 是否以安全认证方式运行,默认是不认证的非安全方式
#noauth = true
#auth = true
# 详细记录输出
#verbose = true
# Inspect all client data for validity on receipt (useful for
# developing drivers)用于开发驱动程序时验证客户端请求
#objcheck = true
# Enable db quota management
# 启用数据库配额管理
#quota = true
# 设置oplog记录等级
# Set oplogging level where n is
# 0=off (default)
# 1=W
# 2=R
# 3=both
# 7=W+some reads
#diaglog=0
# Diagnostic/debugging option 动态调试项
#nocursors = true
# Ignore query hints 忽略查询提示
#nohints = true
# 禁用http界面,默认为localhost:28017
#nohttpinterface = true
# 关闭服务器端脚本,这将极大的限制功能
# Turns off server-side scripting. This will result in greatly limited
# functionality
#noscripting = true
# 关闭扫描表,任何查询将会是扫描失败
# Turns off table scans. Any query that would do a table scan fails.
#notablescan = true
# 关闭数据文件预分配
# Disable data file preallocation.
#noprealloc = true
# 为新数据库指定.ns文件的大小,单位:MB
# Specify .ns file size for new databases.
# nssize =
# Replication Options 复制选项
# in replicated mongo databases, specify the replica set name here
#replSet=setname
# maximum size in megabytes for replication operation log
#oplogSize=1024
# path to a key file storing authentication info for connections
# between replica set members
#指定存储身份验证信息的密钥文件的路径
#keyFile=/path/to/keyfile
或者使用以下的配置:(可做复制集测试配置,注意端口号和复制集的名称,复制集名称必须都一致)
28001.conf
bind_ip=192.168.20.144
port=28001
logpath=/data/db/mongodb_log/28001.log
logappend=true
dbpath=/data/db/mongodb_data28001
replSet=imooc
fork=true
28002.conf
bind_ip=192.168.20.144
port=28002
logpath=/data/db/mongodb_log/28002.log
logappend=true
dbpath=/data/db/28002
replSet=imooc
fork=true
28003.conf
bind_ip=192.168.20.144
port=28003
logpath=/data/db/mongodb_log/28003.log
logappend=true
dbpath=/data/db/28003
replSet=imooc
fork=true
指定端口启用mongo :
cd /usr/local/mongo/bin
./mongo 192.168.20.144:28001/admin