MongoDB 安装(Centos 7)

11/8/2020 MongoDB

# MongoDB 使用(Centos 7)

# 安装 MongoDB 4.4

  1. 配置程序包管理系统(yum)
vi /etc/yum.repos.d/mongodb-org-4.4.repo

将以下内容粘贴进去

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
name         # 名称
baseurl      # 获得下载的路径
gpkcheck=1   # 表示对从这个源下载的rpm包进行校验;
enable=1     # 表示启用这个源。
gpgkey       # gpg验证

ESC 输入 :wq 保存并退出

  1. yum安装mongoDB最新稳定版
sudo yum install -y mongodb-org
另外

另外,要安装特定版本的MongoDB,请分别指定每个组件包,并将版本号附加到包名中,如以下示例所示:

sudo yum install -y mongodb-org-4.4.2 mongodb-org-server-4.4.2 mongodb-org-shell-4.4.2 mongodb-org-mongos-4.4.2 mongodb-org-tools-4.4.2

您可以指定任何可用的MongoDB版本。但是yum ,当有新版本可用时,将升级软件包。为防止意外升级,请固定包装。要固定包,exclude请在/etc/yum.conf文件中添加以下指令:

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

* 下载过程可能有点慢,出现Complete!才是下载完成了

  1. 验证安装结果
rpm -qa | grep mongodb

输出结果如下:

[root@alcloud ~]# rpm -qa | grep mongodb
mongodb-org-tools-4.4.2-1.el7.x86_64
mongodb-org-server-4.4.2-1.el7.x86_64
mongodb-org-database-tools-extra-4.4.2-1.el7.x86_64
mongodb-org-shell-4.4.2-1.el7.x86_64
mongodb-org-4.4.2-1.el7.x86_64
mongodb-database-tools-100.2.1-1.x86_64
mongodb-org-mongos-4.4.2-1.el7.x86_64
[root@alcloud ~]#

查看mongoDB安装和位置

rpm -ql mongodb-org-server

输出结果如下:

[root@alcloud ~]# rpm -ql mongodb-org-server
/etc/mongod.conf
/lib/systemd/system/mongod.service
/usr/bin/mongod
/usr/share/doc/mongodb-org-server-4.4.2
/usr/share/doc/mongodb-org-server-4.4.2/LICENSE-Community.txt
/usr/share/doc/mongodb-org-server-4.4.2/MPL-2
/usr/share/doc/mongodb-org-server-4.4.2/README
/usr/share/doc/mongodb-org-server-4.4.2/THIRD-PARTY-NOTICES
/usr/share/man/man1/mongod.1
/var/lib/mongo
/var/log/mongodb
/var/log/mongodb/mongod.log
/var/run/mongodb
[root@alcloud ~]#

# 启动 MongoDB

  1. 启动 MongoDB 服务
sudo service mongod start  //开启 MongoDB
//或者
systemctl start mongod.service  // 开启 MongoDB
sudo chkconfig mongod on  // 加入开机启动
sudo service mongod restart // 重启 MongoDB
  1. 关闭 MongoDB
sudo service mongod stop
  1. 查看端口是否开启

MongoDB 默认端口是 27017,使用命令查看是否开启端口

netstat -natp | grep 27017
  1. 检查数据库进程是否存在
ps -aux | grep mongod
  1. 验证服务是否开启
mongo
db.version()
  1. 卸载MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org)    // 卸载 MongoDB
sudo rm -r /var/log/mongodb  // 删除日志文件
sudo rm -r /var/lib/mongo    // 删除数据文件

# 配置远程连接 MongoDB

  1. 修改配置文件 mongodb.conf
vi /etc/mongod.conf

修改绑定 ip, 默认 bindIp:127.0.0.1 只允许本地连接,所以修改为 bindIp:0.0.0.0, 让数据库可以被任何位置访问,退出保存。

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
  1. 重启 MongoDB 服务
sudo service mongod restart
  1. 开放对外端口

在防火墙中放行指定的端口:

systemctl status firewalld
// 查看防火墙状态
firewall-cmd --zone=public --add-port=27017/tcp --permanent
// mongodb默认端口号
firewall-cmd --reload
// 重新加载防火墙
firewall-cmd --zone=public --query-port=27017/tcp
// 查看端口号是否开放成功,输出yes开放成功,no则失败
  1. 测试远程连接
mongo 192.168.1.132:27017
db.version()

# 添加用户名和密码

  1. admin 数据库创建用户,设置用户名、密码和权限
show dbs # 显示所有的数据库
use admin # 切换到 admin 数据库
db.createUser({user:'root',pwd:'999888',roles:['root']})
db.auth('root','999888')
# 其他常用命令
# db.changeUserPassword("test", "test")     # 修改密码
# db.updateUser("test",{roles:[ {role:"read",db:"testDB"} ]}) # 更新用户权限
# db.dropUser('test') # 删除用户
# db.createUser({user:'cjx',pwd:'999888',roles:['userAdminAnyDatabase']}) # 赋予用户所有数据库的userAdmin权限
  1. 为其他数据库创建用户,设置用户名、密码和权限
use test
db.createUser({ user:"cjx", pwd:"999888", roles:["readWrite", "dbAdmin"] })
db.auth('cjx','999888')
  1. 修改 mongodb.conf(MongoDB主配置文件) 文件,启用身份验证
vi /etc/mongod.conf

添加如下内容:

security:
  authorization: enabled   # disable or enabled
  1. 重启 MongoDB 服务
sudo service mongod restart
  1. 测试远程或本地连接使用账号密码登录打开mongo
mongo 192.168.1.132:27017/database -u username -p password --port 27017
-u username  //用户名
-p password  //密码
--port 27017 //端口

* 注意这里的ip地址不用http://,直接加ip.

用户权限角色说明:

规则 说明
root 只在admin数据库中可用。超级账号,超级权限
Read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
最后提交: 7/15/2022, 10:42:12 AM