centOS7 linux安装mongodb【疯狂踩坑后亲测可用】

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无法使用

  • 无法创建数据库等

  • 疯狂输出乱码

  1. 添加mongoDB到系统路径
    打开配置文件(二选一,那个能用用那个)
sudo vi ~/.bash_profile

上面那个能开就别用sudo vi ~/.bashrc

sudo vi ~/.bashrc
  1. 进行修改
    enter
 i
  1. 文件末尾原本有export,把它补全,长这样:
export PATH=/opt/servers/mongodb_demo/mongodb/bin:$PATH
  1. 退出
    esc(按键)
    shift+(同时)
    wq

    • 如果卡住了没有任何反应:
      • 可能误触cltr+s
        cltr+q(按键)

      • 可能中文输入法

        ctrl+shift(按键)

  2. 使得更改生效:(二选一

source ~/.bash_profile
source ~/.bashrc

6.处理重启终端后mongo报错

检查你的错误是不是跟我一样

  1. 重启终端
  2. mongo
  3. 进行如下报错

[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

  1. 输入mongod &
  2. 退出 ctrl + c
  3. mongo
  4. 能使了
  5. 但是重启又不行了

输入

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
  1. 进入插入模式
    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

配置完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卑微垃圾桶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值