Centos7.7 安装mongodb 4.2.3 教程及修改端口后无法启动问题解决

 mongodb4.2 已经支持分布式事务了,按奈不住重新安装个数据库,本教程采用了rpm包安装的方式,用过命令行参数启动嫌麻烦(笑哭表情),还想默认一装上就是支持开机启动的(懒得搜开机启动脚本o(* ̄︶ ̄*)o )、于是采用了RPM包吧

我记录了一下安装过程供大家参考

 1、从官网下载安装文件

      下载地址 https://www.mongodb.com/download-center/community

        选择如下图

Centos7.7 安装mongodb 4.2.3 教程及修改端口后无法启动问题解决_第1张图片

下载了4个包安装一下

wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-server-4.2.3-1.el7.x86_64.rpm

wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-mongos-4.2.3-1.el7.x86_64.rpm

wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-tools-4.2.3-1.el7.x86_64.rpm

wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-shell-4.2.3-1.el7.x86_64.rpm

rpm -ivh mongodb-org-server-4.2.3-1.el7.x86_64.rpm

rpm -ivh mongodb-org-mongos-4.2.3-1.el7.x86_64.rpm

rpm -ivh mongodb-org-shell-4.2.3-1.el7.x86_64.rpm

rpm -ivh mongodb-org-tools-4.2.3-1.el7.x86_64.rpm

 

2、安装完成后启动服务

开机脚本位置 /usr/lib/systemd/system/mongod.service

bin文件目录位置 /bin/mongo

配置文件目录 /etc/mongod.conf

日志目录 /var/log/mongodb/mongod.log (帮助查找问题使用,启动失败一般都是文件权限问题)

启动服务 

service mongod start

 

3、查看是否已经支持开机启动 

systemctl status mongod.service 

 显示  mongod.service; enabled;Active: active (running)就是启动成功了。

4、连接数据库创建管理员、数据库

      mongo mongodb://127.0.0.1:27017

      连接成功后mongodb命令行操作

      创建管理员用户

       use admin;

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

      创建一个普通数据库

      use testdb;

      db.createUser({user: "milo",pwd: "123456789",roles: [{ role: "dbAdmin", db: "testdb" }]})

      修改用户权限

     db.grantRolesToUser( "milo",[{role:"readWrite", db:"testdb"}])

5、安全扩展 修改端口,远程连接,打开用户认证

      编辑配置文件vim /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: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  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: 28128
  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.


security:
 authorization: enabled
#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

别忘了防火墙开放端口 

firewall-cmd --zone=public --add-port=28128/tcp --permanent  #开放28128端口

firewall-cmd --reload      #立即生效

 

保存文件重新启动服务即可  service mongod restart

如果重新启动失败请查看日志,如果出现STORAGE [initandlisten] Failed to set up listener: SocketException: Permission denied,这问题把我折腾死了,查看日志各种改文件权限,用户权限通通不管用,万万没想到最后还是解决了。

解决方法如下:

必须将SELinux配置为允许MongoDB在基于Red Hat Linux的系统(Red Hat Enterprise Linux或CentOS Linux)上启动。如果处于强制模式,可以通过访问SELinux的相关端口来解决权限问题
 可以通过运行  

semanage port -a -t mongod_port_t -p tcp 28128

没有这个命令那就去安装

  Centos7.7 安装mongodb 4.2.3 教程及修改端口后无法启动问题解决_第2张图片

  安装成功后再执行

semanage port -a -t mongod_port_t -p tcp 28128

 然后重启mongod服务,发现可用。

6、连接需要验证的数据库

      执行命令

mongo mongodb://127.0.0.1:28128/testdb -u milo -p 123456789

      我用的nodejs端连上去就可以玩了。喜欢命令操作的大神下一条不用看了。

7、GUI客户端

    Navicat Premium 收费软件  土豪直接用 ,程序员凭本事用

    NoSQL Manager for MongoDB   我用的免费版

    我用的 NoSQL Manager for MongoDB  免费版的还可以、附连接截图如下:

     Centos7.7 安装mongodb 4.2.3 教程及修改端口后无法启动问题解决_第3张图片

   

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux,mongodb,nodejs)