linux虚拟机安装mongdb和服务配置

本文详细介绍了MongoDB在Linux系统的安装步骤,包括下载、解压、重命名、配置环境变量、创建数据目录和日志文件,以及解决依赖问题。在启动过程中遇到的错误,如缺少glibc.i686和libstdc++.so.6,通过更新repo源和安装相应包得以解决。最后,创建了MongoDB服务并设置开机自启动,同时展示了如何在shell中添加数据库管理员用户。
摘要由CSDN通过智能技术生成

1、
cd /usr/local        
mkdir MongoDB        
cd MongoDB        
mkdir source        // 在MongoDB文件夹下创建source文件夹用于保存安装包
mkdir data        // 在MongoDB文件夹下创建data文件夹用于后续数据库信息保存
mkdir log                        // 在MongoDB文件夹下创建log文件夹用于保存数据库日志
    
2、cd /usr/local/MongoDB/source    
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz

3、tar -zxvf mongodb-linux-i686-1.8.1.tgz -C  /usr/local/MongoDB

4、cd /usr/local/MongoDB
mv mongodb-linux-i686-1.8.1 mongodbServer    // 将解压后的文件夹名称重命名为 mongodbServer

5、在/etc/profile文件中加入:
export MONGODB_HOME=/usr/local/MongoDB/mongodbServer
export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile

6、创建配置文件mongod.conf:
cd /usr/local/MongoDB/mongodbServer/bin
vi mongod.conf

添加如下内容:
dbpath=/usr/local/MongoDB/data
port=27017
logpath=/usr/local/MongoDB/log/mongodb.log
logappend=true
journal=true
fork=true

7、输入mongod --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf启动mongdb,
提示: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
需要使用yum install glibc.i686命令安装glibc.i686

8、输入yum install glibc.i686提示Package glibc-2.17-317.el7.x86_64 already installed and latest version
解决方案:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i  's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
yum repolist 

9、输入yum install glibc.i686提示mongod: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
报错原因:缺少共享库!
解决方案:
yum whatprovides libstdc++.so.6    //查询哪个安装包有这个库文件

yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyuncs.com
 * extras: mirrors.aliyuncs.com
 * updates: mirrors.aliyuncs.com
libstdc++-4.8.5-44.el7.i686 : GNU Standard C++ Library
Repo        : base
Matched from:
Provides    : libstdc++.so.6


yum -y install libstdc++-4.8.5-44.el7.i686    //安装相应安装包

10、输入yum install glibc.i686

11、输入mongod --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf启动mongdb
提示forked process: 39882则启动成功

12、进入数据库,任意路径执行mongo命令,即可进入 mongoDB 的 shell 命令行

13、指定数据库添加管理用户
打开 mongoDB 的 shell 命令行界面后,进入默认的 admin 数据库
use admin        // 进入 admin 数据库

db.createUser({ user: 'name', pwd: 'password', roles: [{ role: 'dbOwner', db: 'simple-design' }] })
// 为名为 simple-design 的数据库添加数据库管理员,账号为 name,密码为 password, 角色权限为 dbOwner


常用 mongoDB 角色:
数据库用户角色: read、 readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色: __system

14、配置服务
vi /etc/init.d/mongod

相关语句解释:
#chkconfig:345 61 61 //此行的345参数表示,在哪些运行级别启动,启动序号(S61);关闭序号(K61);之前序号用124和224都报错,后来改成两位的就成功了,不知道为什么
#description:Apache //此行必写,描述服务.


文件内容如下:
#!/bin/bash
#chkconfig:345 61 61         //没有配置这行和下面一行,会无法配置服务到自启动的列表里,提示:service mongod does not support chkconfig
#description:Apache          //没有配置这行和上面一行,会无法配置服务到自启动的列表里,提示:service mongod does not support chkconfig
start() {  
/usr/local/MongoDB/mongodbServer/bin/mongod  --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf 
}  
  
stop() {  
/usr/local/MongoDB/mongodbServer/bin/mongod --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf --shutdown  
}  
case "$1" in  
  start)  
 start  
 ;;  
  
stop)  
 stop  
 ;;  
  
restart)  
 stop  
 start  
 ;;  
  *)  
 echo  
$"Usage: $0 {start|stop|restart}"  
 exit 1  
esac

15、执行脚本权限命令
chmod +x /etc/init.d/mongod
systemctl unmask mongod.service

16、启动 mongoDB 系统服务,先kill掉之前的进程
service mongod start 

17、配置开机自启动
chkconfig --add mongod
systemctl enable mongod

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值