mongodb下载,安装与配置
//下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.4.tgz
//安装
tar -xvzf mongodb-linux-x86_64-rhel70-4.4.4.tgz
//解压命令
mkdir -p /opt/servers/mongodb_demo/
mv mongodb-linux-x86_64-rhel70-4.4.4 /opt/servers/mongodb_demo/mongodb
**将文件解压到应有的位置**
ls -l /opt/servers/mongodb_demo/mongodb/bin
检查输出是否是:
-rwxr-xr-x 1 user group size date time install_compass
-rwxr-xr-x 1 user group size date time mongo
-rwxr-xr-x 1 user group size date time mongod
-rwxr-xr-x 1 user group size date time mongos
…
注意:如果这一步显示的跟如上不同,尤其是没有mongod,则出问题
-
如果出错,执行这一步
-
没出错请下滑到后面的粗体的"OK继续",
mkdir -p /tmp/mongodb_extracted
//创建一个新的容器
tar -xvzf mongodb-linux-x86_64-rhel70-4.4.4.tgz -C /tmp/mongodb_extracted
//将压缩包解压到新容器
ls -l /tmp/mongodb_extracted/mongodb-linux-x86_64-rhel70-4.4.4/bin
-
检查新容器内是否有mongod
//检查输出是否是:-rwxr-xr-x 1 user group size date time install_compass -rwxr-xr-x 1 user group size date time mongo -rwxr-xr-x 1 user group size date time mongod -rwxr-xr-x 1 user group size date time mongos ... -
检查无误,执行:
rm -rf /opt/servers/mongodb_demo/mongodb/bin
//删除旧文件夹及其内容,防止冲突
mkdir -p /opt/servers/mongodb_demo/mongodb/bin
rm -rf /opt/servers/mongodb_demo/mongodb/bin
//移动
mkdir -p /opt/servers/mongodb_demo/mongodb/bin
//创建
mv /tmp/mongodb_extracted/mongodb-linux-x86_64-rhel70-4.4.4/* /opt/servers/mongodb_demo/mongodb/
- 检查输出
ls -l /opt/servers/mongodb_demo/mongodb/bin
> 输出:
> -rwxr-xr-x. 1 mongo mongo 7684 Feb 11 2021 install_compass
> -rwxr-xr-x. 1 mongo mongo 53431320 Feb 11 2021 mongo
> -rwxr-xr-x. 1 mongo mongo 82400432 Feb 11 2021 mongod
> -rwxr-xr-x. 1 mongo mongo 64440352 Feb 11 2021 mongos
> ... ```
KO继续
给予mongodb授权,防止提醒没有权限
sudo chmod -R 755 /opt/servers/mongodb_demo/mongodb/bin
sudo chown -R root:root /opt/servers/mongodb_demo/
添加系统路径
export PATH=/opt/servers/mongodb_demo/mongodb/bin:$PATH
#用新权限
source ~/.bash_profile
#创建数据存储地址
sudo mkdir -p /data/db
#还是权限
sudo chown -R `id -u`:`id -g` /data/db
启动
mongod &
输出:
{"t":{"$date":"2024-09-28T00:12:56.927-07:00"},"s":"I", "c":"CONTROL", "id":23285, "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
然后疯狂输出是正常的,你安装成功了,下一步配置后即可使用
按ctrl+C
配置
没配置好可能会出现的问题
-
每次重启都会导致mogodb无法使用
-
无法创建数据库等
-
疯狂输出乱码
- 添加mongoDB到系统路径
打开配置文件(二选一,那个能用用那个)
sudo vi ~/.bash_profile
上面那个能开就别用sudo vi ~/.bashrc
sudo vi ~/.bashrc
- 进行修改
enter
i
- 文件末尾原本有export,把它补全,长这样:
export PATH=/opt/servers/mongodb_demo/mongodb/bin:$PATH
-
退出
esc(按键)
shift+:(同时)
wq- 如果卡住了没有任何反应:
-
可能误触cltr+s
按cltr+q(按键) -
可能中文输入法
ctrl+shift(按键)
-
- 如果卡住了没有任何反应:
-
使得更改生效:(二选一)
source ~/.bash_profile
source ~/.bashrc
6.处理重启终端后mongo报错
检查你的错误是不是跟我一样
- 重启终端
- mongo
- 进行如下报错
[mongo@localhost ~]$ mongo MongoDB shell version v4.4.4 connecting to:
mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Error: couldn’t connect to server 127.0.0.1:27017, connection attempt
failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused
by :: Connection refused : connect@src/mongo/shell/mongo.js:374:17
@(connect):2:6 exception: connect failed exiting with code 1
- 输入mongod &
- 退出 ctrl + c
- mongo
- 能使了
- 但是重启又不行了
输入
bash sudo systemctl status mongod报错:Unit mongod.service could not be found.
请继续往下看
是
/bin/sudo: /bin/sudo: cannot execute binary file
跳转到“如果不OK”的情况2
创建配置文件:
sudo vi /etc/systemd/system/mongod.service
进行复制粘贴:
进入插入:
i
右键粘贴以下代码:
# mongod.service
[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target
[Service]
User=mongodb
Group=mongodb
ExecStart=/opt/servers/mongodb_demo/mongodb/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
LimitNOFILE=64000
[Install]
WantedBy=multi-user.target
注意!ExecStart是你自己的地址
如果你是从头到尾和我一样,可以掠过这一条注意
可以通过
which mongod
找到,并粘贴到ExecStart=“whichmongo输出的部分”
退出
esc
:
wq
进行配置
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod # 如果希望开机自启动服务,可以运行此命令。
做配置文件2号:
sudo vi /etc/mongod.conf
i
提示文件是新建的是正常的
注意,这里对缩进极其敏感,容易报错,尽量使用csdn自带的复制,不然容易出问题
如果mongo输入之后,出问题显示
英文月份缩写 今天的日期 时间 啊八八八八八八八八八八八一串英文[5个数字]: Unrecognized option: net
就说明是这里的缩进或者语法肯定有一个问题
请更加警惕的粘贴,粘贴之后授权
sudo systemctl daemon-reload
sudo systemctl restart mongod
并重启mongodb
sudo systemctl restart mongod
# mongod.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo
net:
port: 27017
bindIp: 0.0.0.0 # 替换为你的IP地址,或者对所有开放0.0.0.0
security:
authorization: enabled # 如果需要启用认证,则取消注释此行
- 你也许想知道自己的ip是什么:
bash ip addr show输出如下:巴拉巴拉巴拉巴拉巴拉 巴拉巴拉巴拉巴拉巴拉
inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic enp0s3
巴拉拉巴拉巴拉拉
巴拉巴拉巴拉巴拉巴拉
巴拉巴拉巴拉巴拉巴拉
巴拉巴拉巴拉巴拉巴拉inet 后 192.168.1.10就是你的地址
ok回过来
配置文件3,mongodb仓库
sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF
如果你没有粘贴即退出说明你粘的有问题 ctrl+c 然后用csdn自带的粘
做mongo用户群
sudo groupadd mongodb
创建mongodb并加进去
sudo useradd -r -g mongodb -s /bin/false mongodb
把mongo加入路径
给权限(这不是重复,它真的有四行代码,并且长得很像:
sudo mkdir -p /var/log/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
sudo mkdir -p /var/lib/mongo
sudo chown -R mongodb:mongodb /var/lib/mongo
mongdb 启动!
sudo systemctl daemon-reload # Reload systemd configuration.
sudo systemctl start mongod # Start the MongoDB service.
sudo systemctl enable mongod # Enable the service to start on boot (optional).
最终检验
sudo systemctl restart mongod
mongo
如果不成功
你的mongo安装地址 --host vm-node-1:27017 -u admin -p 你的密码--authenticationDatabase admin
一般是
/opt/servers/mongodb_demo/mongodb/bin/mongo --host vm-node-1:27017 -u admin -p password --authenticationDatabase admin
应该是ok的
mongo应该是可以正常启动
如果不OK
,并且你检查过了上面所有注意的点
情况1:用root用户做过一遍mongo,但没删除干净
可能是你之前安装过mongodb,用得root用户,导致部分文件没有办法删干净
像是这样
{“t”:{“$date”:“啊八八八八八八八八”},“s”:“E”, “c”:“网络的英文”, “id”:一串数字, “ctx”:“英文字母”,“从这后面是重要的”:“Failed to unlink socket file”,“attr”:{“path”:“/tmp/mongodb-27017.sock”
Failed to unlink socket file
代表删不掉文件
/tmp/mongodb-27017.sock
代表你的文件名
于是就手动删除:
sudo rm /tmp/mongodb-27017.sock
情况2:有程序占用了端口:
sudo netstat -tuln | grep 27017
有输出就有问题
有问题就关闭端口
kill -9 pid那里的数字
情况3:权限看看还有没有问题
sudo mkdir -p /var/run/mongodb /var/lib/mongo /var/log/mongodb
sudo chown -R mongodb:mongodb /var/run/mongodb /var/lib/mongo /var/log/mongodb
最终,重启你的mongo
sudo systemctl restart mongod
sudo systemctl status mongod
应该就ok了
长这样,是绿色的

以下可选,也就是可以不做
允许远程连接,改mongod.conf(要配置node.js就必须配,否则可选
sudo vi /etc/mongod.confnet
检查bindip,改数字:
bindIp: 0.0.0.0
保存重启mongo
sudo systemctl restart mongod
退出mongo,配置透明大页(可选,不配可能出bug
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
sudo vi /etc/default/grub
-
进入插入模式
i在 GRUB_CMDLINE_LINUX 行添加以下参数:
GRUB_CMDLINE_LINUX="… transparent_hugepage=never"
sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot
退出
:
wq
创建管理员用户(非必选但是配置mongo集群必选)
mongo
use admin
db.createUser({
user: "admin",
pwd: "写你密码",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})
exit
//上面是退出
//这个是登录:
mongo -u admin -p 写你密码 --authenticationDatabase admin
配置完成

被折叠的 条评论
为什么被折叠?



