在 Linux 上 CentOS 系统中安装 MongoDB 数据库

发布于 2020-06-04 12:57:43 字数 3367 浏览 1163 评论 0

在网上找了很多这方面的教程,很难安装成功,有些是系统环境不一样,有些根本就安装不成功,只是当时作者在安装的时候成功了,换个环境就安装不上,这篇文章是我找了多个安装教程的总结。

登录 Linux 切换到 /usr 目录

下载 MongoDB 安装包

cd /usr
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz

解压 mongodb-linux-x86_64-4.0.0.tgz 文件

tar zxvf mongodb-linux-x86_64-4.0.0.tgz

重命名为 mongodb 文件夹

mv mongodb-linux-x86_64-4.0.0 mongodb

配置环境变量

vim /etc/profile

在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

#Set Mongodb
export PATH=/usr/mongodb/bin:$PATH

保存后通过下面的命令使环境变量生效:

source /etc/profile

创建数据库目录并设置权限

cd /usr/mongodb
touch mongodb.conf
mkdir db
chmod 777 db
mkdir log
chmod 777 log
cd log
touch mongodb.log

编辑配置文件

vim /usr/mongodb/mongodb.conf

输入下面的配置信息

port = 27017 #端口
dbpath = /usr/mongodb/db #数据库存文件存放目录
logpath = /usr/mongodb/log/mongodb.log #日志文件存放路径
logappend = true #使用追加的方式写日志
fork = true #以守护进程的方式运行,创建服务器进程
maxConns = 100 #最大同时连接数
noauth=true #不启用验证
journal = true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时 wiredtiger 会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine = wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 127.0.0.1  #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

注意如果你的 mongodb 的文件不是在 /usr 目录下,需要修改上面配置的相关路径。

启动 mongodb

mongod -f /usr/mongodb/mongodb.conf #启动
mongod --shutdown -f /usr/mongodb/mongodb.conf #停止

另外如果在写数据的时候重启系统,会导致 Mongodb 报错,严重的甚至无法启动,我有一次就是系统无法响应,直接重启了系统,然后 Mongodb 死活启动不了,最后删除了重新配置。

配置外网访问 Mongodb

外网访问是不安全的,但是我们设置足够强大的密码,应该还是可以放心使用。

修改配置文件

vim /usr/mongodb/mongodb.conf

noauth 设置 falsebind_ip 修改为 0.0.0.0,新增一行 auth = true

登录到数据库

mongo

使用 admin 数据库

use admin

给 admin 数据库添加管理员用户名和密码,用户名和密码请自行设置

db.createUser({user:"admin", pwd:"123456", roles:["root"]})

验证是否成功,返回1则代表成功

db.auth("admin", "123456")

切换到要设置的数据库,以 test 为例

use test

为 test 创建用户,用户名和密码请自行设置。

db.createUser({user: "test", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]})

输入 exit 退出数据库管理。

附录1:CentOS 防火墙配置

默认情况下,CentOS 的防火墙是开启的,而我们 27017 端口外部是无法访问,我们需要配置下防火墙。

在 /usr/lib/firewalld/services 目录新建 mongodb.xml 文件

touch mongodb.xml

输入下面的内容

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>mongodb</short>
<description>mongodb tcp</description>
<port protocol="tcp" port="27017"/>
</service>

执行下面命令添加端口

firewall-cmd --permanent --add-service=mongodb

重启防火墙

systemctl stop firewalld.service
systemctl start firewalld.service

如果你要是嫌麻烦,你可以直接禁止防火墙

systemctl disable firewalld.service

查看防火墙的状态

systemctl status firewalld.service

删除端口

firewall-cmd --permanent --remove-service=mongodb

附录2:vim 常规操作

刚开始打开文件的时候是查看模式,此时不能编辑文件,但是如果你的剪切板有内容,点击鼠标右键是能够粘贴的,但是还是查看模式。

按键盘的 Ins 键进入 Insert 模式,此时可以自由的编辑了。

编辑完了按 Esc 退出编辑模式,保存并退出按 :wq,如果不想保存 :q!

查找内容,在查看模式,按斜杠 / 输入查找内容,按 Enter 进入编辑模式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文