欢迎光临
我们一直在努力

CentOS 7 安装mongodb

迁移服务器,装mongodb~

安装步骤

1、下载
前往Mongodb下载页面,选择CentOS 7的tgz压缩包,复制地址。

在服务器上用wget下载

cd /usr/local/src/
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.1.tgz

2、解压并移动到/usr/local/mongodb

tar zxvf mongodb-linux-x86_64-rhel70-4.4.1.tgz
mv mongodb-linux-x86_64-rhel70-4.4.1 /usr/local/mongodb

3、创建存放数据文件夹db和日志文件夹logs

cd /usr/local/mongodb/
mkdir db
mkdir logs

4、创建配置文件

vim /usr/local/mongodb/bin/mongodb.conf

输入以下内容

dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
bind_ip=0.0.0.0
port=27017
fork=true

5、启动mongodb

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf

6、测试

/usr/local/mongodb/bin/mongo

输入show dbs,出现数据库信息就是安装成功了。

开启访问验证

mongodb默认是不需要密码访问的,正式环境自然是要密码来保护了,首先创建管理员用户。

# 进入mongodb
/usr/local/mongodb/bin/mongo
# 切换到admin库
use admin
# 创建管理员账号,把user和pwd改为你自己的。
db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

创建完角色后,需要开启验证登录,打开配置文件/usr/local/mongodb/bin/mongodb.conf,在最下面加入一行

auth=true

进入mongodb执行命令db.shutdownServer()关闭mongodb,重新启动。启动后就需要密码才能访问了。

# 进入mongodb
/usr/local/mongodb/bin/mongo
# 切换到admin库
use admin
# 查询集合列表,但此时还未登录会提示登录
show collections
# 登录
db.auth("admin","password")
# 查询集合列表,可正常查询
show collections

也可以在连接mongodb的时候验证

/usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin -u "admin" -p "password"

创建普通数据库用户

# 切换到admin库
use admin
# 登录管理员账号
db.auth("admin","password")
# 切换到想要创建用户的数据库,这里以test为例子
use test
# 创建test库的所有者用户
db.createUser({user: "username",pwd: "password",roles: [ { role: "dbOwner", db: "test" } ]})

这里试了下在admin数据库中创建test的用户,结果发现不能直接登录test,只能在admin库登录后再切换到test库查询。所以如果要创建某库的账号,则需要先切换到那个库。

查看当前数据库的用户以及权限列表

show users

关闭mongodb

开启验证后,db.shutdownServer()权限归hostManager角色所有,加一个吧

# 切换到admin库
use admin
# 登录管理员账号
db.auth("admin","password")
# 添加权限
db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])
# 关闭mongodb
db.shutdownServer()

工具包

因为需要迁移数据库,到bin目录下发现没有mongodump工具,之前装的4.0版本是有附带这些工具的。查了下是新版本将工具分离出来了,需要单独下载。前往工具包下载页面,选择对应的版本,我这下载时的链接是这个:

https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.1.1.tgz

下载到服务器后解压移动到mongodb的bin目录下就行。

监控

mongodb工具包里自带了性能监控,需要有clusterMonitor权限才能执行,和上面一样给admin管理员加上吧。

db.grantRolesToUser( "admin" , [ { role: "clusterMonitor", db: "admin" } ])

加完后退出,运行监控

./mongostat -u "admin" -p "password" --authenticationDatabase=admin

内存占用问题

监控不看不知道,一看吓一跳,8G内存的服务器,mongodb占了3.5G内存。查了下官方文档,是mongodb默认的配置cacheSizeGB设置的,有这个么计算规则:

# 默认用这个规则
50% * (RAM - 1 GB) 
# 如果上面的计算出来小于256MB,则按256MB算
256 MB

所以我的服务器mongodb缓存大小:(总内存8GB – 1GB) * 50% = 3.5GB
如果想减小需要设置这个配置,可前往Mongodb官方配置文件说明查看详细介绍。似乎新版推荐用yml格式的,找时间试试看。
最后把配置文件改成了这样

systemLog:
    destination: file # 写入到指定文件而非系统日志
    logAppend: true # 重启后追加日志到原来的文件而非重新创建
    path: /usr/local/mongodb/logs/mongodb.log # 指定的日志文件路径
storage:
    dbPath: /usr/local/mongodb/db # 指定的数据文件存储路径
    journal:
        enabled: true # 开启更新持久化,若为false则每分钟才会做一次全量的持久化
    wiredTiger:
      engineConfig:
        cacheSizeGB: 1 # 配置最大缓存内存,若不配置mongodb会占用服务器近一般的内存
processManagement:
    fork: true # 作为进程运行
    pidFilePath: /var/run/mongo.pid # 配置PID文件位置
net:
    bindIp: 0.0.0.0 # 开放IP访问
    port: 27017 # 端口
security:
    authorization: enabled # 开启登录

制作成系统服务

创建文件:

vim /usr/lib/systemd/system/mongodb.service

输入以下内容:

#表示基础信息
[Unit]
#描述
Description=Mongodb
#在哪个服务之后启动
After=syslog.target network.target remote-fs.target nss-lookup.target

#表示服务信息
[Service]
Type=forking
#注意:需要和mongodb.conf配置文件中的信息一致
PIDFile=/var/run/mongodb.pid
#启动服务的命令
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
#重新加载命令
ExecReload=/bin/kill -s HUP $MAINPID
#停止服务的命令
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

#安装相关信息
[Install]
#以哪种方式启动
WantedBy=multi-user.target
#multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

保存后退出,执行systemctl daemon-reload命令,使配置生效。生效后可使用下面几个命令来控制redis服务:

  • 设置开机启动:systemctl enable mongodb.service
  • 检测是否开机自启:systemctl is-enabled mongodb.service
  • 取消开机自启:systemctl disable mongodb.service
  • 启动:systemctl start mongodb.service
  • 停止:systemctl stop mongodb.service
  • 重启:systemctl restart mongodb.service
  • 查看状态:systemctl status mongodb.service

最后

外部访问还要记得开放防火墙和安全组的端口。

赞(0) 打赏
未经允许不得转载:欧欧colo教程网 » CentOS 7 安装mongodb

更稳定的 国内物理服务器租用 机柜托管

促销 - 国内物理机 40核 64G内存 1T硬盘 ¥260

服务器促销国内物理机 40核 64G内存 1T硬盘 ¥260

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏