MongoDB 数据库服务搭建(单机)
下载地址 下载测试数据
作者:程序那点事儿 日期:2023/02/15 02:16
-
进入下载页,选择版本后,右键Download复制连接地址
-
下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz
- 解压安装包
tar -zxvf mongodb-linux-x86_64-rhel70-5.0.14.tgz -C /usr/local/ mv mongodb-linux-x86_64-rhel70-5.0.14/ mongodb5.0.14/ #重命名一下
- 配置环境变量
a.cd mongodb5.0.14/
b.pwd #显示安装路径,配置时复制
c.vim /etc/profile #配置PATHexport PATH=/usr/local/mongodb5.0.14/bin:$PATH
- 刷新
d.source /etc/profile #刷新
- 安装
-
Linux下我们使用tgz格式的安装包进行安装,没有像windows那样可以使用msi进行简易安装,所以,它这个包是不全的,我们需要进入mongodb目录再手动创建两个目录,data和log,data目录是用于存放数据的,log目录是用于存放日志文件的。
- 创建目录
- mkdir data
- mkdir logs
- 创建配置文件
-
因为该安装包不包含配置文件,我们需要去bin目录下面写一个mongodb的配置文件
-
cd bin/
-
vi mongodb.conf
#端口号 默认为27017 port=27017 #数据库数据存放目录 dbpath=/usr/local/mongodb5.0.14/data #数据库日志存放目录 logpath=/usr/local/mongodb5.0.14/logs/mongodb.log # pid存储路径 pidfilepath = /var/run/mongo.pid #以追加的方式记录日志 logappend = true #以后台方式运行进程 fork=true #开启用户认证 #auth=true #最大同时连接数 maxConns=100 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB bind_ip = 0.0.0.0 #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。 #启用日志文件,默认启用 journal=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true
-
- 启动服务
./mongod -f mongodb.conf
- 连接服务
./mongo
- 停止服务
因为我们启动服务时没有使用系统服务启动(参考后面一步),停止服务需要使用kill命令
- ps -ef | grep mongo
- kill 56552
- 使用系统服务启动(可选操作)
- 在/etc/init.d/路径下创建启动脚本 vim /etc/init.d/mongod
#!/bin/sh # chkconfig: #MogoDB home directory MONGODB_HOME=/usr/local/mongodb5.0.14/ #mongodb command MONGODB_BIN=$MONGODB_HOME/bin/mongod #mongodb config file MONGODB_CONF=$MONGODB_HOME/bin/mongodb.conf #mongodb PID MONGODB_PID=/var/run/mongo.pid #set open file limit SYSTEM_MAXFD=65535 MONGODB_NAME="mongodb" . /etc/rc.d/init.d/functions if [ ! -f $MONGODB_BIN ] then echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! " exit fi start(){ ulimit -HSn $SYSTEM_MAXFD $MONGODB_BIN --config="$MONGODB_CONF" --fork ##added ret=$? if [ $ret -eq 0 ]; then action $"Starting $MONGODB_NAME: " /bin/true else action $"Starting $MONGODB_NAME: " /bin/false fi } stop(){ PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l) if [[ $PID -eq 0 ]];then action $"Stopping $MONGODB_NAME: " /bin/false exit fi kill -HUP `cat $MONGODB_PID` ret=$? if [ $ret -eq 0 ]; then action $"Stopping $MONGODB_NAME: " /bin/true rm -f $MONGODB_PID else action $"Stopping $MONGODB_NAME: " /bin/false fi } restart() { stop sleep 2 start } case "$1" in start) start ;; stop) stop ;; status) status $prog ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|status|restart}" esac
设置权限 chmod 755 /etc/init.d/mongod
- 启动MongoDB
- systemctl start mongod #启动失败是,mongodb.service被屏蔽了
-
解决启动失败
sudo systemctl unmask mongodb #将服务取消屏蔽 systemctl start mongod #发现启动成功了!
- 在/etc/init.d/路径下创建启动脚本 vim /etc/init.d/mongod
- 关闭防火墙
systemctl status firewalld #查看状态 systemctl stop firewalld #关闭 systemctl disable firewalld #永久关闭
如果外部要访问,需要开放防火墙端口,我们选择关闭防火墙。
- 访问测试
mongo #输入mongo命令(或:mongo --host 127.0.0.1:27017)使用本地客户端进行访问 show dbs #查看一下数据库
- 停止服务
systemctl stop mongod #使用系统服务停止服务 db.shutdownServer() #优雅停服,防止数据丢失