美文网首页
CentOS 安装 mongodb

CentOS 安装 mongodb

作者: 秋天下雨淋湿冬天 | 来源:发表于2022-08-08 11:14 被阅读0次

安装

创建 mongodb yum 源头

vim /etc/yum.repos.d/mongodb-org-5.0.repo

编辑刚刚创建的文件,将下面👇内容写入

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

yum 安装

sudo yum install -y mongodb-org

如果安装失败,可能是你安装的时候5.0版本已经变化,可以去官方网站 找对应的第1步代码 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

image.png

查看安装位置

whereis mongod

启动 mongodb

sudo systemctl start mongod

查看 mongod 状态

sudo systemctl status mongod
image.png

设置开机启动

sudo systemctl enable mongod

关闭 mongod

sudo systemctl stop mongod

重启

sudo systemctl restart mongod
//或者 (具体是看你的MongoDB版本,不能版本的配置文件不一致)
mongod --shutdown -f  /mongodb/conf/mongodb.conf 
//或者
mongod --shutdown -f  /etc/mongod.conf

启动报错 /usr/bin/mongod $OPTIONS (code=exited, status=14)

文件权限问题,给文件添加权限

chown -R mongod:mongod /var/lib/mongo
chown -R mongod:mongod /var/log/mongodb
chown mongod:mongod /tmp/*.sock

关闭THP提示

image.png
办法1
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
办法2
vim /etc/rc.local
//粘贴以下
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

// always madvise [never]

然后重启mongo

mongo命令行操作

第一次启动不要加 —auth
先创建用户

连接管理数据库:

mongo
> use admin;

创建管理员用户:

> db.createUser( { user: "admin", pwd: "123456", roles: [ { role: "root", db: "admin" }, "readWriteAnyDatabase" ] } )

> db.auth("admin", "123456")
//返回 1

事实是,MongoDB的用户权限和数据库是绑定的。也就是创建一个新的数据库,并在数据库中插入数据的正确操作应该是需要创建与之对应的用户

创建用户账户&数据库

>use admin
switched to db admin
> show users
//这个命令查看用户数量
>use newdatabase1
switched to db newdatabase1
>db.createUser({ user:"testuser", pwd:"testpwd", roles:[{role:"readWrite",db:"newdatabase1"}] })
>db.auth('testuser','testpwd')
> show users

创建完成之后,再加 —auth重新启动

mongoDB默认不允许远程登录

需要设置

bind_ip=0.0.0.0
auth=true
//如果是xml格式的,是下面这样,auth没找到地方写
bindIp: 0.0.0.0
image.png

防火墙设置,开放端口 27017,如果是阿里云服务器,要在阿里云里面也开放端口

CentOS 采用了 firewalld 防火墙
1、启动FirewallD服务命令:

systemctl start firewalld.service #开启服务
systemctl enable firewalld.service #设置开机启动

2、查看FirewallD防火墙状态:

systemctl status firewalld

如需要查询是否开启27017端口则输入命令:

firewall-cmd --query-port=27017/tcp

// no,说明未开启
需修改,输入命令:

firewall-cmd --add-port=27017/tcp

启动mongod(启动后才可以远程连接)

第一次启动不要加 —auth
先创建用户
创建完成之后,再加 —auth重新启动

mongod  --config /etc/mongod.conf --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log  --fork --auth

关闭mongod

mongod --shutdown -dbpath=/var/lib/mongo
//另一种办法
sudo lsof -i :27017
sudo kill -9 PID

加了auth后的登录

mongo -u admin -p 123456 localhost/admin

查看参数

db.runCommand( { getParameter : ‘*’ } )

MongoDB重启失败

image.png
rm -rf /tmp/mongodb-27017.sock

客户端输入mongo 连接地址即可访问

mongodb://[userName]:[password]@[host]:[port]/[db]

Cannot connect to MongoDB. Authentication failed.

认证问题

链接很久提示连接不上

端口问题,阿里云安全组开放端口 & 服务器防火墙开放端口

相关文章

网友评论

      本文标题:CentOS 安装 mongodb

      本文链接:https://www.haomeiwen.com/subject/dgcnwrtx.html