服务器(CentOS)安装配置mongodb
时间:2022-06-19
本文章向大家介绍服务器(CentOS)安装配置mongodb,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装须知
- mongo DB下载地址mongodb官网下载
- Linux须知知识:
安装过程
- 服务器下载安装包
- 下载:
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.6.tgz
; - 解压:
tar -zxvf mongodb-linux-x86_64-rhel62-4.0.6/
; - 移动到需要存放的目录下
mv mongodb-linux-x86_64-rhel62-4.0.6/ /usr/local/mongodb
- 下载:
- 配置环境变量:
export PATH=/usr/local/mongodb/bin:$PATH
,直接执行此命令,只会创建出临时的环境变量,即重新断开连接服务器后会失效;- 环境变量持久化配置:需要将mongod路径添加到系统路径中,
- 在
/etc/profile
文件中,添加export PATH=/usr/local/mongodb/bin:$PATH
; - 执行source /etc/profile,使系统环境变量立即生效
- 验证是否安装成功:
mongod --version
db version v4.0.6 git version: caa42a1f75a56c7643d0b68d3880444375ec42e3 OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 allocator: tcmalloc modules: none build environment: distmod: rhel62 distarch: x86_64 target_arch: x86_64
mongod启动配置
1. 创建数据库存放和日志目录
- 因为MongoDB的数据存储在data目录的db目录下,而该目录在安装过程中并不会自动创建,所以需要手动创建data目录,并在data目录中创建db目录。
- mongoDB启动默认使用的数据哭存储目录是根目录
/data/db
;当然也可以在其他目录下创建,然后通过--dbpath
来指定; - 根目录下创建:
mkdir -p /data/db
;这里为了后期好查找,就不创建在根目录下,而是放在mongodb目录下/usr/local/mongodb/data/db
- 日志目录创建
/usr/local/mongodb/logs
2. 配置mongod启动文件
-
/usr/local/mongodb/etc
下创建配置文件mongod.config
:
dbpath=/usr/local/mongodb/data # 数据库存放位置(之前创建的)
logpath=/usr/local/mongodb/logs/mongodb.log # 数据库日志存放位置(之前创建的)
port=27017
fork=true #后台运行
auth=false # 初次配置先关了权限验证登陆模式
journal=false
3. 启动mongod
- 启动:
mongod -f /usr/local/mongod/etc/mongod.config
; - 进入数据库管理命令界面:
mongo
- 创建数据库管理角色
db.createUser({user:'root',pwd:'1234567',roles:[{'role':'userAdminAnyDatabase','db':'admin'}]})
- 运行结果:
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
- 退出服务,谨慎使用kill直接去杀掉mongodb进程,可以使用
db.shutdownServer()
关闭. - 使用权限方式启动MongoDB,在配置文件中添加:auth=true , 然后启动:
mongod -f /usr/local/mongod/etc/mongod.config
- 进入mongo shell,使用admin数据库
use admin
并进行验证db.auth('root','123456')
,验证成功返回1
失败返回0
;如果不验证或验证失败,是做不了任何操作的
4.MongoDB设置为系统服务并且设置开机启动
- 在服务器的系统服务文件中添加mongod配置:
vim /etc/rc.d/init.d/mongod
,输入:
start() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongod.config
}
stop() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongod.config --shutdown
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo
$"Usage: $0 {start|stop|restart}"
exit 1
esac
- 保存并添加脚本执行权限:
chmod +x /etc/rc.d/init.d/mongod
; - 现在可以试试使用
service mongod [start|stop|restart|try-restart|reload|force-reload| status]
来直接管理MongoDB服务啦; - 试试关闭服务:
[lwh@insnce-4ep /]# service mongod stop
2019-03-10T16:45:22.360+0800 I CONTROL [main] log file "/usr/local/mongodb/logs/mongodb.log" exists; moved to "/usr/local/mongodb/logs/mongodb.log.2019-03-10T08-45-22".
killing process with pid: 10652
- 试试开启服务:
service mongod start
;ok!!
5. 本地远程连接服务器数据库
- 连接命令:
mongo 42.114.29.206:27017/test -u user -p password
- 报错连接失败,拒绝连接;
- 原因:云服务器中安装MongoDB后(默认端口27017),默认绑定IP为127.0.0.1,这就导致外部无法访问;
- 决解: 修改mongod.config配置文件,添加
bind_ip=0.0.0.0
绑定公网IP; - 重启mongodb服务
service mongod restart
- 发现报错:
about to fork child process, waiting until server is ready for connections.
forked process: 11300
ERROR: child process failed, exited with error number 48
- 原因:应该是之前没有正常关闭mongodb引起的,比如直接 kill -9 <pid>导致;
- 决解:
- 找到
data/mongod.lock
文件,并删除mongod.lock
; - 以修复方式启动mongod
mongod -f usr/local/mongodb/etc/mongod.config --repair
; - 再次启动
service mongod start
- 找到
“积跬步、行千里”—— 持续更新中~,喜欢的话留下个赞和关注哦!
- 小案例(五):销量预测(python)
- SQL:插入指定标识列的数据时候的小错误
- 逻辑回归与梯度下降详解
- 决策树(R语言)
- ExecuteReader在执行有输出参数的存储过程时拿不到输出参数
- CTF---Web入门第十三题 拐弯抹角
- 小案例(四):销售额下滑(python)
- 【最新TensorFlow1.4.0教程01】TF1.4.0介绍与动态图机制 Eager Execution使用
- 把插入的数据自动备份到另一个表中 ~ 语境:本地和服务器自动同步
- 数据分析小案例(三):调查问卷(python)
- CTF---Web入门第十六题 天下武功唯快不破
- 数据分析小案例(二):面包是不是变轻了(python)
- 数据分析小案例(一):商业街抽奖(python)
- Bagging算法(R语言)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 滴滴自动化运维平台夜莺实战部署
- Android UI使用HorizontalListView实现水平滑动
- python操作yaml说明
- python由已知数组快速生成新数组的方法
- Git 修改已提交 commit 的信息
- 解决windows下python3使用multiprocessing.Pool出现的问题
- 解决pyqt5异常退出无提示信息的问题
- TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
- 来来来,让咱重新认识一下算法的复杂度!
- 带你通过字节跳动面试---操作系统复习
- Java 8 中的接口和抽象类到底有啥区别?
- Android自定义View实现简单炫酷的球体进度球实例代码
- 详解android 中文字体向上偏移解决方案
- Android自定义控件仿ios下拉回弹效果
- 当飞桨PaddleHub遇到微信小程序,AI也能指物作诗