bartender的安全策略不允许指定的用户执行此操作_如何在CentOS7上安装最新的MongoDB并不踩坑...

昨天在头条发的 《请不要再无条件推荐Nginx-gridfs插件访问MongoDB》就是我踩的坑之一,为了让大家少踩坑,整理这份安装文档给大家使用,节省大家宝贵时间。话不多说,开整!

系统:CentOS7.2
MongoDB:4.2.1
具体版本请参考MongoDB下载中心https://www.mongodb.com/download-center/community

287e5868e19c43db648255ddc02660bd.png

主站最新稳定版4.2.1

一、安装系统基础依赖包

yum install pcre-devel openssl-devel zlib-devel git

可选参数 -y 个人建议,yum或dnf安装时不要加 -y,除非你特别确定你自己安装的列表,否则还是能看一下确认一下比较好

二、安装最新版本的MongoDB

1、设置安装源

vi /etc/yum.repos.d/mongodb-org-4.2.repo

[mongodb-org-4.2]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

2、安装

yum install mongodb-org

49a573638646009193249a8c3541c79b.png

安装MongoDB最新版本

3、启动并配置MongoDB

启动

systemctl start mongod

有三条诸如下面的警告

40365a1f09e07eca0038718ae04739ae.png

警告

解决方法如下

echo never >> /sys/kernel/mm/transparent_hugepage/enabled

echo never >> /sys/kernel/mm/transparent_hugepage/defrag

vi /etc/default/grub

在GRUB_CMDLINE_LINUX加入选项 transparent_hugepage=never,如下图

b5729df028efed1c4845e031ea4ccda8.png

修改grub文件

然后用如下命令重新生成grub配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

如果是rhel系统这里是

grub2-mkconfig -o /boot/efi/EFI/rhel/grub.cfg

用reboot命令重启系统后,再次用命令行mongo登入MongoDB数据库就不会上面这些警告提示了,但会提示你数据库未启用访问控制

WARNING: Access control is not enabled for the database.

解决方法如下:

首先直接使用命令行mongo登入数据库

在admin数据库中创建超级管理员用户ddd,可管理所有数据库,操作如下(在MongoDB中)

> use admin

switched to db admin

> db.createUser({user: "ddd",pwd: "test123",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

> exit

引申一下创建账户的命令解释(仅为例子,请修改后使用,以下命令解释为网络抄录) db.createUser({user: "admin",pwd: "admin",roles: [ { role: "root", db: "admin" } ] })user:用户名pwd:密码db:指定该用户的数据库,admin是用于权限控制的数据库,如果没有需要新建一个roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:Built-In Roles(内置角色): 1. 数据库用户角色:read、readWrite; 2. 数据库管理角色:dbAdmin、dbOwner、userAdmin; 3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 备份恢复角色:backup、restore; 5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超级用户角色:root  // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 内部角色:__system具体角色的功能:Read:允许用户读取指定数据库readWrite:允许用户读写指定数据库dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profileuserAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。root:只在admin数据库中可用。超级账号,超级权限

修改MongoDB服务启动文件加入认证功能并重启MongoDB服务

vi /usr/lib/systemd/system/mongod.service

修改为如下,主要是画红线的部分,其他不动

bb58fe5635c2f271bff8d3ca2aea085a.png

启动文件修改

重启MongoDB

systemctl daemon-reload //仅在修改过启动文件时执行这一行

systemctl restart mongod

如果启动报错,用如下命令解决

chown -R mongod:mongod /var/lib/mongo

chown -R mongod:mongod /var/log/mongodb

chown mongod:mongod /tmp/mongodb-27017.sock

rm -f /var/run/mongodb/mongod.pid

测试认证连接

mongo -uddd -ptest123 --authenticationDatabase "admin"

登陆成功即可正常操作数据库,在启动MongoDB的认证功能后,所有的数据库操作必须先进行验证,这也是官方最推荐的一种方法。

三、修改数据库默认IP和端口及数据存储位置

MongoDB在安装后默认的IP为127.0.0.1,端口是27017,为方便远程连接,可修改IP和端口,个人建议本机连接使用,只修改端口即可;外部连接使用,IP和端口都要修改。

vi /etc/mongod.conf

3a486f353c6d25daa7b071230b7562f3.png

修改默认IP及端口

如果要修改默认的数据存储位置,请修改如下标红的位置

6a0dd386579506c2a6c2d5bdb56615a5.png

修改数据存储位置

修改完毕后要重新启动MongoDB,重新启动或关闭MongoDB 不要使用kill命令,除了使用systemctl命令外,如必须使用命令行关闭MongoDB请参考如下正确方法

通过shell连上服务器:

>use admin

>db.shutdownServer()

到此,不采坑的CentOS7上安装最新的MongoDB方法就介绍到这里了。

原创文章辛苦,欢迎大家关注,点赞,转发。

### 回答1: “bartender 末在本地计算机上注册'microsoft.ace.oledb.12.0'”这句话是指在计算机上安装的酒保软件遇到了注册为'microsoft.ace.oledb.12.0'的组件未能成功注册的问题。此组件是用于在计算机上访问和处理Microsoft Access数据库的驱动程序。 要解决这个问题,可以按照以下步骤操作: 1. 确认是否已正确安装了'Bartender'软件。如果软件没有正确安装,可以尝试重新安装软件并确保选择了安装所有必需的组件。 2. 确认本地计算机上是否已安装了Microsoft Access数据库驱动程序。这可以通过访问控制面板的"程序和功能"或"应用程序和功能"来查看已安装的程序列表。如果没有安装这个驱动程序,可以从Microsoft官方网站或其他可信来源下载并安装。 3. 如果已安装了该驱动程序,但仍无法注册成功,可能是由于权限问题或系统错误导致。可以尝试以下操作: - 以管理员身份运行'Bartender'软件,以确保具有足够的权限执行相关操作。 - 检查计算机上的防火墙和安全软件设置,确保它们不会阻止该组件的注册。 - 在注册表查找并修复与该组件相关的错误项。这需要小心进行,建议在进行之前备份注册表。 如果以上步骤都无法解决问题,建议联系'Bartender'软件的技术支持人员或咨询相关IT专家以获取更进一步的帮助和指导。 ### 回答2: 当Windows操作系统的本地计算机上尝试注册"Microsoft.ACE.OLEDB.12.0"时,可能会遇到以下问题。 1. 缺少安装组件:如果本地计算机上未安装Microsoft Access数据库引擎相关组件,就无法注册"Microsoft.ACE.OLEDB.12.0"。解决方法是下载并安装最新的Microsoft Access数据库引擎。 2. 版本不匹配:可能注册的是与本地计算机的操作系统不兼容的"Microsoft.ACE.OLEDB.12.0"版本。需要确定本地计算机的操作系统版本,并下载与操作系统兼容的版本。 3. 权限问题:注册"Microsoft.ACE.OLEDB.12.0"需要管理员权限。可能是当前用户没有足够的权限进行注册。可以尝试使用管理员账户重新注册。 4. 注册表错误:本地计算机的注册表可能存在错误或损坏,导致无法注册"Microsoft.ACE.OLEDB.12.0"。可以尝试修复注册表错误或从备份还原注册表。 需要注意的是,在寻求帮助并进行操作之前,应备份重要数据和注册表,以防止意外问题的发生。另外,如果遇到无法解决的问题,建议咨询计算机专业人士或联系Microsoft支持团队以获得进一步的协助。 ### 回答3: 当你遇到报错信息"bartender 末在本地计算机上注册\"microsoft.ace.oledb.12.0"时,表示你的计算机缺少了一个为"Microsoft.ACE.OLEDB.12.0"的组件。这个组件是用于在计算机上访问和处理Microsoft Access数据库的。 这个问题通常是由于缺少Microsoft Access组件或安装不正确引起的。你可以按照下面的步骤来解决这个问题: 1. 首先,确认你的操作系统是32位还是64位。 如果是32位系统,你需要下载并安装"Microsoft Access Database Engine 2010 Redistributable",如果是64位系统,则需要下载并安装"Microsoft Access Database Engine 2016 Redistributable"。你可以在Microsoft的官方网站上找到这些组件的下载页面。 2. 下载适合你操作系统的"Microsoft Access Database Engine"组件安装包,并运行安装程序。 3. 按照安装程序的指示进行安装。在安装过程,确保选择正确的架构和版本(32位或64位),并点击"下一步"进行安装。 4. 完成安装后,重新启动你的计算机,然后再次尝试运行Bartender程序。现在应该不会出现"bartender 末在本地计算机上注册\"microsoft.ace.oledb.12.0"的报错信息了。 总结一下,当你遇到"bartender 末在本地计算机上注册\"microsoft.ace.oledb.12.0"的错误信息时,这表示你缺少了Microsoft Access组件。按照上述步骤下载并安装正确的组件版本,重启计算机后问题应该就会得到解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值