单点安装3.6.23_ubuntu18.04

系统参数配置

操作系统主机命名

hostnamectl set-hostname dbatest01

/etc/hosts配置

cp /etc/hosts /etc/hosts.bak
cat >>/etc/hosts<<EOF
10.0.0.31          dbatest01
EOF

limits.conf

echo 'add by mongodb' >>  /etc/security/limits.conf
echo 'mongodb soft nofile 64000' >>  /etc/security/limits.conf
echo 'mongodb hard nofile 64000' >>  /etc/security/limits.conf
echo 'mongodb soft nproc 32000' >>  /etc/security/limits.conf
echo 'mongodb hard nproc 32000' >>  /etc/security/limits.conf
echo 'mongod soft stack 32768' >>  /etc/security/limits.conf
echo 'mongod hard stack 32768' >>  /etc/security/limits.conf

关闭透明页

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag--加入开机启动
echo '
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag'>>/etc/rc.local
chmod +x /etc/rc.local

防火墙配置

默认防火墙是关闭状态

sudo ufw disable #禁用

如果启用防火墙需进行如下配置:

如果数据库端口和ssh端口不是3306和22,需视情况更改

sudo ufw enable #开启防火墙
sudo ufw allow 3306/tcp #仅tcp
sudo ufw allow 22/tcp #仅tcp

selinux配置

Ubuntu 默认未安装SELinux,省略设置。

root@HKSZF-ZW-172-19-146-175:/etc/selinux# getenforce
Command 'getenforce' not found, but can be installed with:
apt install selinux-utils

安装deb包

会自行处理依赖关系

--查看
root@HKSZF-ZW-172-19-146-173:/topsoft/soft/single/package# ls -l
total 49632
-rw-r--r-- 1 root root  4387392 Jan 22  2024 mongodb-org-mongos_3.6.23_amd64.deb
-rw-r--r-- 1 root root  9680898 Jan 22  2024 mongodb-org-server_3.6.23_amd64.deb
-rw-r--r-- 1 root root  5284074 Jan 22  2024 mongodb-org-shell_3.6.23_amd64.deb
-rw-r--r-- 1 root root 31458362 Jan 22  2024 mongodb-org-tools_3.6.23_amd64.deb--安装deb包
root@HKSZF-ZW-172-19-146-173:/topsoft/soft/single/package# dpkg -i *.deb
Selecting previously unselected package mongodb-org-mongos.
(Reading database ... 59893 files and directories currently installed.)
Preparing to unpack mongodb-org-mongos_3.6.23_amd64.deb ...
Unpacking mongodb-org-mongos (3.6.23) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack mongodb-org-server_3.6.23_amd64.deb ...
Unpacking mongodb-org-server (3.6.23) ...
Selecting previously unselected package mongodb-org-shell.
Preparing to unpack mongodb-org-shell_3.6.23_amd64.deb ...
Unpacking mongodb-org-shell (3.6.23) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack mongodb-org-tools_3.6.23_amd64.deb ...
Unpacking mongodb-org-tools (3.6.23) ...
Setting up mongodb-org-mongos (3.6.23) ...
Setting up mongodb-org-server (3.6.23) ...
Adding system user `mongodb' (UID 111) ...
Adding new user `mongodb' (UID 111) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb' (GID 117) ...
Done.
Adding user `mongodb' to group `mongodb' ...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org-shell (3.6.23) ...
Setting up mongodb-org-tools (3.6.23) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for ureadahead (0.100.0-19.1) ...

会自动创建mongodb用户和组

配置文件位置:/etc/mongod.conf

规划目录

mkdir -p /topsoft/mongodb/{data,log,conf}
chown -R mongodb:mongodb /topsoft/mongodb

更改配置文件

cp /etc/mongod.conf /etc/mongod.conf_bak_`date +%F`sed -i "s#/var/lib/mongodb#/topsoft/mongodb/data#g" /etc/mongod.conf
sed -i "s#/var/log/mongodb/mongod.log#/topsoft/mongodb/log/mongod.log#g" /etc/mongod.conf
sed -i "s#127.0.0.1#127.0.0.1,172.19.146.173#g" /etc/mongod.conf

journal:

enabled: true 下增加

engine: wiredTiger

配置文件样例

cat /etc/mongod.conf
# mongod.conf# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.
systemLog:destination: filelogAppend: truepath: /topsoft/mongodb/logs/mongod.log# Where and how to store data.
storage:dbPath: /topsoft/mongodb/datajournal:enabled: trueengine: wiredTiger# how the process runs
#processManagement:
#  fork: true  # fork and run in background
#  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
#  timeZoneInfo: /usr/share/zoneinfo# network interfaces
net:port: 27017bindIp: 127.0.0.1,172.19.146.173  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.## Enterprise-Only Options#auditLog:#snmp:

配置系统服务

cat > /lib/systemd/system/mongod.service << "EOF"
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings[Install]
WantedBy=multi-user.target
EOFchmod +x /lib/systemd/system/mongod.service

启动服务

systemctl start mongod
systemctl enable mongod   #设置开机启动

问题处理

启动报错status=2/INVALIDARGUMENT

--问题描述
oot@HKSZF-ZW-172-19-146-173:/topsoft/mongodb/logs# systemctl restart mongod
root@HKSZF-ZW-172-19-146-173:/topsoft/mongodb/logs# systemctl status mongod
● mongod.service - High-performance, schema-free document-oriented databaseLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: failed (Result: exit-code) since Mon 2024-01-22 04:20:44 EST; 7s agoDocs: https://docs.mongodb.org/manualProcess: 3216 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (code=exited, status=2)Main PID: 3216 (code=exited, status=2)Jan 22 04:20:44 HKSZF-ZW-172-19-146-173 systemd[1]: Started High-performance, schema-free document-oriented database.
Jan 22 04:20:44 HKSZF-ZW-172-19-146-173 systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jan 22 04:20:44 HKSZF-ZW-172-19-146-173 systemd[1]: mongod.service: Unit entered failed state.
Jan 22 04:20:44 HKSZF-ZW-172-19-146-173 systemd[1]: mongod.service: Failed with result 'exit-code'.--解决办法
配置文件参数不对,参数上面

卸载

停止MongoDB服务

--查看进程  确认配置文件位置--停止服务
systemctl stop mongod
systemctl status mongod

卸载MongoDB软件包

在Ubuntu上,MongoDB通过apt软件包管理工具进行安装和卸载。我们可以使用以下命令卸载MongoDB软件包:

--查看安装的包
root@HKSZF-ZW-172-19-146-173:/topsoft/mongodb# dpkg -l | grep mongo
ii  mongodb-org-mongos                    3.6.23                                          amd64        MongoDB sharded cluster query router
ii  mongodb-org-server                    3.6.23                                          amd64        MongoDB database server
ii  mongodb-org-shell                     3.6.23                                          amd64        MongoDB shell client
ii  mongodb-org-tools                     3.6.23                                          amd64        MongoDB tools--卸载
sudo apt-get purge mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools

这将卸载MongoDB的所有相关软件包。

某些场景下是,建议先dpkg -l查

sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev

删除MongoDB配置文件和数据目录

默认情况下,数据目录在/var/lib/mongodb。

--删除配置文件
sudo rm /etc/mongodb.conf--删除数据目录
sudo rm -r /var/lib/mongodb

删除MongoDB用户和用户组

MongoDB在安装过程中创建了一个名为mongodb的用户和一个名为mongodb的用户组。为了完全卸载MongoDB,我们还需要删除它们。

sudo userdel mongodb
sudo groupdel mongodb

清理残留文件和目录

完成上述步骤后,我们还可以清理一些可能的残留文件和目录。

运行以下命令清理MongoDB的日志文件:

sudo rm /var/log/mongodb/mongodb.log

然后,运行以下命令清理MongoDB的临时文件目录:

sudo rm -r /tmp/mongodb-*

总结

通过按照上述步骤,我们可以从Ubuntu系统中完全卸载MongoDB数据库。记住,在卸载之前请备份您的数据,以防意外发生。如果您想重新安装MongoDB,请参考MongoDB的官方文档。

认证功能

MongoDB的认证功能是用于保护数据库的数据安全性的一项重要功能。当认证功能启用时,连接MongoDB数据库的客户端需要提供合法的用户名和密码才能成功连接和操作数据库。这样可以防止未经授权的访问和数据泄露。

启用MongoDB认证功能

要启用MongoDB的认证功能,我们需要进行以下几个步骤:

  1. 修改MongoDB配置文件:打开MongoDB的配置文件(通常为mongod.conf),找到”security”部分,取消注释”authorization”选项并设置为”enabled”。
security:authorization: enabled
  1. 重启MongoDB服务:保存配置文件并重新启动MongoDB服务。在Linux系统中,可以使用以下命令重启MongoDB服务:
sudo systemctl restart mongod
  1. 创建管理员用户:启用认证功能后,需要先创建一个管理员用户。可以使用MongoDB的命令行工具mongo连接到数据库,然后执行以下命令来创建管理员用户:
use admin
db.createUser({user: "adminUser",pwd: "adminPassword",roles: [ { role: "root", db: "admin" } ]}
)

这里的”adminUser”和”adminPassword”可以根据实际情况进行修改。

  1. 验证认证功能:在启用认证功能后,尝试使用不带用户名和密码的方式连接到MongoDB将会失败。我们需要使用管理员用户的用户名和密码进行连接:
mongo -u adminUser -p adminPassword --authenticationDatabase admin

禁用MongoDB认证功能

如果不再需要认证功能,或者由于某些原因需要禁用认证功能,可以按照以下步骤进行:

  1. 修改MongoDB配置文件:打开MongoDB的配置文件(mongod.conf),找到”security”部分,将”authorization”选项注释掉。
#security:
#  authorization: enabled
  1. 重启MongoDB服务:保存配置文件并重新启动MongoDB服务。在Linux系统中,可以使用以下命令重启MongoDB服务:
sudo systemctl restart mongod
  1. 验证禁用认证功能:在禁用认证功能后,可以使用不带用户名和密码的方式连接到MongoDB,并进行其他操作。

请注意,在禁用认证功能后,任何可以访问MongoDB服务器的人都可以进行任意操作,这将带来一定的安全风险。因此,在生产环境中,请谨慎考虑是否禁用认证功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

掌握C++20的革命性特性:Concepts

掌握C20的革命性特性&#xff1a;Concepts C20 的新特性 C20 引入了 Concepts&#xff0c;这是一种用于限制类和函数模板的模板类型和非类型参数的命名要求。Concepts 是作为编译时评估的谓词&#xff0c;用于验证传递给模板的模板参数。Concepts 的主要目的是使模板相关的编…

书法家深入社区开展“迎春送福”写春联活动

春节将至&#xff0c;岁寒情深。2024年1月22日&#xff0c;在春节即将来临之际&#xff0c;双岗街道万小店社区邀请“四知书画院”院长杨东初、“东方诗书画院”院长杨玉能、“林散之草圣书画院”客座教授倪萍等知名书法家&#xff0c;在合肥市庐阳区为民社会服务中心开展“迎春…

vue2中将axios库挂载到Vue的原型对象上,以使其在整个Vue应用程序中可用

通过Vue.prototype可以扩展Vue的原型对象&#xff0c;并添加自定义的属性或方法。在这种情况下&#xff0c;$axios是自定义的属性名&#xff0c;可以根据需求进行命名。 通过Vue.prototype.$axios axios这行代码&#xff0c;将axios库赋值给Vue的原型对象上的$axios属性。这样…

alzet渗透泵多少钱,你知道么?

alzet渗透压泵可被埋植在实验动物的皮下或腹腔&#xff0c;渗透层与泵体埋植组织之间高渗透压导致组织内水分通过泵体外层的刚性半透膜进入泵体&#xff0c;从而挤压由柔韧的非渗透性膜组成的药池使药池内的试剂以预定的速度释放。 近几年&#xff0c;在研究中使用alzet渗透泵…

Feign代理目标方法执行流程

总体而言Feign调用目标方法之前被jdk动态代理区分为两种形式&#xff1a;负载均衡方式以及域名直接调用方式。 public class FeignClientFactoryBean{public <T> T getTarget() {//通过父容器创建子容器工厂类FeignContextFeignContext context applicationContext.get…

[Oracle] INSERT INTO 几种用法

插入数据需要使用 INSERT INTO 语句。该语句有多种写法&#xff0c;具体取决于插入的数据来源和目标&#xff0c;下面介绍一些常见用法和语法。 1.插入所有列的值 如果要将数据插入到表中的所有列中&#xff0c;则可以使用以下 INSERT INTO 语句&#xff1a; INSERT INTO tab…

ARM_Linux中GCC编译器的使用

目录 前言: GCC编译过程: 预处理&#xff1a; 编译阶段&#xff1a; 汇编&#xff1a; 链接阶段 GCC的常见使用 前言: 什么是GCC: gcc的全称是GNU Compiler Collection&#xff0c;它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器&#xff08;GNU C Co…

PgSQL - 17新特性 - 块级别增量备份

PgSQL - 17新特性 - 块级别增量备份 PgSQL可通过pg_basebackup进行全量备份。在构建复制关系时&#xff0c;创建备机时需要通过pg_basebackup全量拉取一个备份&#xff0c;形成一个mirror。但很多场景下&#xff0c;我们往往不需要进行全量备份/恢复&#xff0c;数据量特别大的…

C++面试宝典第23题:乌托邦树

题目 乌托邦树每年经历2个生长周期。每年春天,它的高度都会翻倍。每年夏天,他的高度都会增加1米。对于一颗在春天开始时种下的高为1米的树,问经过指定周期后,树的高度为多少? 输入描述:输入一个数字N(0 <= N <= 1000),表示指定周期。 比如:样例输入为3。 输出描…

helm---自动化一键部署

什么是helm?? 在没有这个helm之前&#xff0c;deployment service ingress helm的作用就是通过打包的方式&#xff0c;把deployment service ingress 这些打包在一块&#xff0c;一键式部署服务&#xff0c;类似于yum 官方提供的一个类似于安装仓库的功能&#xff0c;可以实…

基于springboot+vue新能源汽车充电管理系统

摘要 新能源汽车充电管理系统是基于Spring Boot和Vue.js技术栈构建的一款先进而高效的系统&#xff0c;旨在满足不断增长的新能源汽车市场对充电服务的需求。该系统通过整合前后端技术&#xff0c;实现了用户注册、充电桩管理、充电订单管理等核心功能&#xff0c;为用户提供便…

vue的vue-resource和axios介绍

在Vue项目中前后端交互时&#xff0c;早期Vue使用Vue-resource实现异步请求。 从Vue2.0之后就不再对vue-resource进行更新&#xff0c;Vue官方推荐使用axios。 一、vue-resource Vue.js的插件提供了使用XMLHttpRequest 或 JSONP进行Web请求和处理响应的服务。vue-resource像jQ…

使用DTS实现TiDB到GaiaDB数据迁移

1 概览 本文主要介绍通过 DTS 数据迁移功能&#xff0c;结合消息服务 for Kafka 与 TiDB 数据库的 Pump、Drainer 组件&#xff0c;完成从TiDB迁移至百度智能云云原生数据库 GaiaDB。 消息服务 for Kafka&#xff1a;详细介绍参见&#xff1a;消息服务 for Kafka 产品介绍百度智…

go 语言中 json.Unmarshal([]byte(jsonbuff), j) 字节切片得使用场景

struct_tag的使用 在上面的例子看到&#xff0c;我们根据结构体生成的json的key都是大写的&#xff0c;因为结构体名字在go语言中不大写的话&#xff0c;又没有访问权限&#xff0c;这种问题会影响到我们对json的key的名字&#xff0c;所以go官方给出了struct_tag的方法去修改…

R语言rvest爬虫如何设置ip代理?

前言 在R语言中使用rvest进行网络爬虫时&#xff0c;可以使用代理服务器来隐藏真实IP地址。有一些R包可以帮助爬虫中设置代理&#xff0c;其中一个常用的包是httr。以下是一个简单的例子&#xff0c;演示如何在rvest中设置IP代理 教程 一、获取代理IP并提取 二、详情设置 l…

golang常用库之-golang-jwt/jwt包

文章目录 golang常用库之-golang-jwt/jwt包golang-jwt/jwt包使用demo golang常用库之-golang-jwt/jwt包 golang-jwt/jwt包 github&#xff1a; https://github.com/golang-jwt/jwt golang-jwt/jwt 是一个在 Go 语言中使用 JSON Web Tokens&#xff08;JWT&#xff09;进行身…

2024三掌柜赠书活动第四期: Next.js实战,构建现代化的可扩展Web应用

目录 摘要前言Next.js简介关于《 Next.js实战》实战示例最佳实践和进阶应用编辑推荐内容简介作者简介图书目录书中前言/序言《Next.js实战》全书速览结束语 摘要&#xff1a;本文将介绍Next.js&#xff0c;一个流行的React框架&#xff0c;以及如何在实际项目中使用Next.js构…

Linux中timerfd系列函数使用指南

timerfd_create, timerfd_settime, timerfd_gettime系列函数将定时器的实现与文件描述符绑定在一起&#xff0c;定时器超时的那一刻文件描述符变得可读&#xff0c;因此可以很好的与 select、poll 和 epoll 结合在一起使用。 timerfd_create 系统调用将创建一个定时器并与一个…

OSPF协议LSDB同步过程和邻居状态机

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle O…

技术型企业如何选择安全、性价比高的FTP替代方案?

FTP作为世界上第一款文件传输协议&#xff0c;在全球范围内应用广泛&#xff0c;它解决了文件传输协议空白的问题&#xff0c;为文件传输场景提供了专业的解决方案。 但随着网络技术的演进&#xff0c;技术型企业进行文件传输的需求也更多元和复杂&#xff0c;FTP的缺陷也更多的…