在云服务器上安装并启动MongoDB
说明:
服务器系统为centos8.3
使用宝塔面板进行相关操作
1、将安装包下载到 /usr/local/mongodb
可以自定义目录
到官网复制下载的路径
在你准备好的目录下运行终端命令
wget https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64/RPMS/mongodb-org-server-5.0.4-1.el8.x86_64.rpm
下载完成后目录里将会多出一个:
? mongodb…xxx.rpm的文件
宝塔视角:
2、安装
安装前我们需要安装各个 Linux 平台依赖包。
Red Hat/CentOS:
sudo yum install libcurl openssl
Ubuntu 18.04 LTS (“Bionic”)/Debian 10 “Buster”:
sudo apt-get install libcurl4 openssl
Ubuntu 16.04 LTS (“Xenial”)/Debian 9 “Stretch”:
sudo apt-get install libcurl3 openssl
上面的bash命令按照自己服务器对应的系统选择
在mongodb…xxx.rpm文件的同级目录下运行bash
rpm -ivh mongodb-org-server-5.0.4-1.el8.x86_64.rpm
查看安装路径
rpm -ql xxx
rpm -ql mongodb-org-server-5.0.4-1.el8.x86_64
一些命令:
rpm -ql 包名
rpm -q 包名
rpm -qa
rpm -qi 包名 -i
-p
3、运行MongoDB
编辑配置文件:
vim /etc/mongod.conf
按 i 进入编辑,编辑完安 ESC退出,输入 :wq 保存并退出
基本配置
#数据库数据存放目录
dbpath=/usr/local/mongodb304/data
#数据库日志存放目录
logpath=/usr/local/mongodb304/logs/mongodb.log
#以追加的方式记录日志
logappend = true
#端口号 默认为27017
port=27017
#以后台方式运行进程
fork=true
#开启用户认证
auth=true
#关闭http接口,默认关闭http端口访问
nohttpinterface=true
#mongodb所绑定的ip地址
bind_ip = 127.0.0.1
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
启动MongoDB
bash命令:
/usr/bin/mongod -f /etc/mongod.conf
查看是否运行成功
bash命令:
netstat -ntlp
4、可能出现的错误
1、远程连接不上
a、在云服务器上开启端口 27017或自定义的端口
b、通过以下下方式再次配置(大体上 按顺序粘贴代码是可以的,稍加理解)
防火墙端口配置
27017是默认端口,可自定义
1 切换到root用户,并输入命令:firewall-cmd --query-port=27017/tcp 确认端口是否开放
返回no
可以看出,端口27017并没有对外开放
2 输入命令: firewall-cmd --get-active-zones 拿到zone名称
3 输入命令:firewall-cmd --zone=public --add-port=27017/tcp --permanent
永久开放6379端口
4 输入命令:firewall-cmd --reload ,重启防火墙
5 再次查看端口是否开放了:firewall-cmd --query-port=27017/tcp
可以看到返回yes,表明端口开放成功
在防火墙中设置27017开启远程服务
在防火墙中设置27017开启远程服务;
1、解决service iptables save 命令不能使用问题
在 CentOS 7与8下执行 service iptables save 命令,出现如下错误:
[root@test ~]
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
1、首先停止防火墙:
systemctl stop firewalld
systemctl mask firewalld
2、 安装 iptables-services
在 CentOS 7 和 RHEL 7 中,没有 /etc/sysconfig/iptables 这个配置文件,也不能执行 service iptables restart 命令,需要通过安装 iptables-services 才有。(centos8也同上)
[root@test ~]
CentOS Linux release 7.6.1810 (Core)
[root@test ~]
iptables-1.4.21-28.el7.x86_64
[root@test ~]
然后就可以使用 service iptables [start | stop | restart | save …] 命令。
3、取消服务的锁定与重启
systemctl unmask firewalld
systemctl restart firewalld.service
这里应该使用 systemctl start firewalld.service
启动、关闭、重启防火墙服务。
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl restart firewalld.service
查看已启动的服务列表。
systemctl list-unit-files|grep enabled
查看所有打开的端口。
firewall-cmd --zone=public --list-ports
重新载入,更新防火墙规则。
firewall-cmd --reload
开启80端口,–permanent永久生效,没有此参数重启后失效。
firewall-cmd --zone=public --add-port=80/tcp --permanent
查看80端口是否开放。
firewall-cmd --zone=public --query-port=80/tcp
删除80端口配置。
firewall-cmd --zone=public --remove-port=80/tcp --permanent
在防火墙中设置6379开启远程服务并保存
redis默认端口号6379是不允许进行远程连接的,所以在防火墙中设置6379开启远程服务;
/sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
保存
service iptables save
查看
netstat -ntlp
5、本地连接工具
robot3t(免费)官网:https://robomongo.org/
6、其他方式
通过上传压缩包的方式
https://www.runoob.com/mongodb/mongodb-linux-install.html
笔者在使用此种方式在centos8云服务器上操作时碰壁太多,于是改用上述方式
希望对你有所帮助,感谢你的阅读。
|