(6)浅浅记录一个网站的诞生之旅:MongoDB 安装

上一篇:(5)浅浅记录一个网站的诞生之旅:Python 安装


         数据库方面,网站准备使用 MongoDB 作为主要数据库,可以方便地实现服务的拓容。进行 MongoDB 的安装需要注意:MongoDB 的5.x 及后续版本需要 CPU 支持 AVX 指令集,否则只能安装 4.x 或更低的版本。

# 查询 CPU 是否支持 AVX
[root@ffs ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            15
Model:                 6
Model name:            Common KVM processor
Stepping:              1
CPU MHz:               1999.999
BogoMIPS:              3999.99
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
L3 cache:              16384K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology eagerfpu pni cx16 x2apic hypervisor lahf_lm rsb_ctxsw

# 在 Flags 这栏如果没有找到 avx 则说明此 CPU 不支持 AVX 指令集

我的服务器的 CPU 不支持 AVX,所以准备安装 4.x 中最新的版本。首先打开 MongoDB 官方下载页面选择需要的版本(Version),平台(Platform)选择“RedHat / CentOS 7.0 x64”,包(Package)选择“tgz”,注意别选成“Shell (tgz)”了,最后点击复制链接(Copy link)即可获取下载链接

MongoDB 下载页面
MongoDB 下载页面

 下载并解压 MongoDB

# 下载 MongoDB 4.4.23
[root@ffs ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.23.tgz

# 解压文件
[root@ffs ~]# tar -zxvf mongodb-linux-x86_64-rhel70-4.4.23.tgz

下载的 MongoDB 是编译好的,可以直接使用

# 移动 MongoDB 的位置
[root@ffs ~]# mv ./mongodb-linux-x86_64-rhel70-4.4.23 /usr/local/mongodb

# 创建链接
[root@ffs ~]# ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo
[root@ffs ~]# ln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod

为 MongoDB准备运行环境

# 打开 MongoDB 目录
[root@ffs ~]# cd /usr/local/mongodb

# 创建数据目录和日志目录
[root@ffs mongodb]# mkdir data
[root@ffs mongodb]# mkdir logs

# 创建日志文件
[root@ffs mongodb]# touch ./logs/mongodb.log

 接下来制作 MongoDB 的启动参数文件

# 首先创建并编辑启动参数文件
[root@ffs mongodb]# vi ./bin/mongodb.conf

 在文件中写入如下内容并保存

# 数据文件存放目录
dbpath = /usr/local/mongodb/data

# 日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log
logappend=true

# 端口
port = 27017

# 以守护程序的方式启用,即在后台运行
fork = true

# 认证模式
auth = false

# 远程连接
bind_ip = 0.0.0.0

接下来便可启动 MongoDB 了

# 使用启动参数文件启动 MongoDB
[root@ffs mongodb]# mongod -f /usr/local/mongodb/bin/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 5670
child process started successfully, parent exiting

启动后使用 mongo 可以连接数据库说明安装成功(连接后可使用 exit 退出)

[root@ffs mongodb]# mongo
MongoDB shell version v4.4.23
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a6997f23-b594-461c-a74a-7cc5c20b24f7") }
MongoDB server version: 4.4.23
---
The server generated these startup warnings when booting: 
        2023-07-19T18:02:50.278+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2023-07-19T18:02:52.870+08:00: You are running this process as the root user, which is not recommended
        2023-07-19T18:02:52.870+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
        2023-07-19T18:02:52.870+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
        2023-07-19T18:02:52.870+08:00: Soft rlimits too low
        2023-07-19T18:02:52.870+08:00:         currentValue: 1024
        2023-07-19T18:02:52.870+08:00:         recommendedMinimum: 64000
---
> exit
bye

现在关闭 MongoDB,并创建编辑 MongoDB 的服务脚本

# 强制停止 MongoDB
[root@ffs ~]# pkill mongod

# 制作服务脚本文件
[root@ffs ~]# vi /usr/lib/systemd/system/mongod.service

在文件中添加以下内容:

[Unit]
Description = mongod
After = network.target

[Service]
Type = forking
ExecStart = /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
ExecReload = pkill mongod && /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
ExecStop = pkill mongod
PrivateTmp = true

[Install]
WantedBy = multi-user.target

调整权限并配置服务

# 设置脚本的权限
[root@ffs ~]# chmod 755 /usr/lib/systemd/system/mongod.service
 
# 重载并启动服务
[root@ffs ~]# systemctl daemon-reload
[root@ffs ~]# systemctl start mongod.service
 
# 设置开机自启
[root@ffs ~]# systemctl enable mongod.service

附上一些服务控制的常用命令:

systemctl start mongod.service # 启动服务
systemctl stop mongod.service  # 停止服务
 
systemctl reload mongod.service # 重载服务 (推荐使用)
systemctl restart mongod.service # 重启服务
 
systemctl status mongod.service  # 查看状态
 
systemctl enable mongod.service # 设置为开机启动
systemctl disable mongod.service # 取消开机启动

安装完 MongoDB 后再来安装相关的管理工具。先打开管理工具下载页面,版本(Version)选择“100.7.3”,平台(Platform)选择“RedHat / CentOS 7.0 x86_64”,包(Package)选择“tgz”,然后点击复制链接(Copy link)获取下载链接后,下载并解压工具

# 下载并解压文件
[root@ffs ~]# wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.7.3.tgz
[root@ffs ~]# tar -zxvf mongodb-database-tools-rhel70-x86_64-100.7.3.tgz
[root@ffs ~]# cd mongodb-database-tools-rhel70-x86_64-100.7.3

# 将管理工具移动到安装目录里
[root@ffs mongodb-database-tools-rhel70-x86_64-100.7.3]# mv ./bin/* /usr/local/mongodb/bin/

此外,为了提升数据库的安全性,我们需要启用安全认证

# 连接数据库
[root@ffs ~]# mongo


# 先创建一个超级用户

# 在 "admin" 数据库中,创建 "admin" 用户,"password" 替换为自己的密码,授予该用户“超级用户角色”
> use admin;
> db.createUser({user: 'admin', pwd: 'password', roles: [{role: 'root', db: 'admin'}]});

# 再创建一个管理用户
> use db1;
> db.createUser({user: "name", pwd: "password", roles: [{ role: "dbOwner", db: "db1" }]});

用户创建完成后,关闭数据库并打开安全认证

# 关闭数据库
> use admin;
> db.shutdownServer();

# 打开数据库启动参数文件
[root@ffs ~]# vi /usr/local/mongodb/bin/mongodb.conf

# 把 "auth = false" 改为 "auth = true" 并保存

# 再次启动数据库服务
[root@ffs ~]# systemctl start mongod.service

# 连接数据库
[root@ffs ~]# mongo

# 身份认证
> db.auth("admin","password")

# 输出 1 则代表认证成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shiqi_SQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值