环境:centos 6.5 mongodb2.6.5
一、环境搭建
1、前往github下载mongodb2.6.5:https://github.com/mongodb/mongo
2、讲下载的zip包上传到/data目录(自己存放上传文件的的目录),并解压
3、在/data目录中新建一个mg目录用来存放mongodb
mkdir mg
4、进入/data/mg文件夹中,在该文件夹中创建一些文件夹
[root@localhost mg]# mkdir data 存放数据文件
[root@localhost mg]# mkdir log 存放日志文件
[root@localhost mg]# mkdir conf 存放配置文件
[root@localhost mg]# mkdir bin存放二进制文件
5、编译mongodb
在编译之前需要安装系统编译环境
5.1 使用yum进行快捷安装依赖
yum install pcre-devel python-devel scons
yum install boost boost-devel
yum install gcc
yum install gcc-c++
下载:http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
http://120.52.72.53/ftp.mozilla.org/c3pr90ntcsf0/pub/mozilla.org/js/js-1.7.0.tar.gz
rpm -ivh epel-release-5-4.noarch.rpm
安装:js-1.7.0.tar.gz
解压出的文件夹为js
cd js/src
export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
make -f Makefile.ref
JS_DIST=/usr make -f Makefile.ref export
5.2 进入mongodb文件中编译
cd mongo-r2.6.5cd mongo-r2.6.5
编译
CentOS 6.x 64位系统,建议采用多核CPU,在多核并行编译时,物理内存不能少于8G,否则会频繁使用交换分区,导致编译时间过长
scons -j 8 all //使用8线程并行编译,推荐使用CPU核心数
由于自己在虚拟机下,因此使用
scons all
5.3配置mongodb
进入/data/mg/conf目录
vi mongod.conf
输入:
port=12345 //mongodb运行的端口号
dbpath=data //mongodb数据存放目录
logpath=log/mongod.log //mongodb日志文件
fork=true //设置为后台运行
5.4 启动mongodb
./bin/mongod -f conf/mongod.conf
出现下图表示运行成功
5.5 可以进入data、log目录查看mongodb是否有文件,如果有说明mongodb运行没有出现错误
5.6 出现
2016-04-01T02:57:28.612-0400 I CONTROL [initandlisten] ** WARNING: /sys/kernel/
mm/transparent_hugepage/enabled is 'always'.
2016-04-01T02:57:28.612-0400 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-01T02:57:28.612-0400 I CONTROL [initandlisten]
2016-04-01T02:57:28.612-0400 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-01T02:57:28.612-0400 I CONTROL [initandlisten] ** We suggest set
解决方法:
执行下面的命令
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
重启mongodb即可
二、连接mongodb
1、将编译包中的mongo复制到mg/bin目录中,方便使用
cp mongo ../../mg/bin/
2、进入bin目录进行连接数据库
./mongo 127.0.0.1:12345/test
如果出现numactl警告,需要停止服务,加上参数:numactl --interleave=all
numactl --interleave=all mongod -f conf/mongodb.conf
停止服务需要使用admin用户
use admin
db.shutdownServer()
三、MongoDB默认数据local、admin
local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。
四、忘记密码,重置密码
停止mongodb服务
将配置中auth=true去掉
重新启动服务
连接mongodb,切换系统表use admin,查看账户db.system.users.find(),删除账户,在添加新账户
重新配置认证