MongoDb安装

下载 安装

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

产品类型 - 选择社区免费版
Version 选择-这里选择最新的版本
OS 选择 - 我这里是 centos 系统,选择 RHEL 7.0 Linux ,如果是 ubuntu 等其它系统选择对应的选项。
Package 选择 - 这里选择 TGZ 形式。

上面的选项选择好之后,点击 download 按钮可以直接下载压缩包到本地,同时在 download 下面一行也会出现下载地址链接,当前的下载链接地址 - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz ,同时右侧也提供了 tgzzip 两个压缩包形式可以下载。

上面已经获取到了下载地址,所以直接用 wget 在服务器下载,也可以下载到本地,然后使用 ftp 上传到服务器。

// 我这里下载到了 /usr/local 目录下
[root@instance-xfl1djr7 ~]$ cd /usr/local/
[root@instance-xfl1djr7 local]weget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz
// 解压
[root@instance-xfl1djr7 local]$ tar zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgz
// 这里我给解压后的文件重命一下,方便后续操作
[root@instance-xfl1djr7 local]$ mv mongodb-linux-x86_64-rhel70-4.2.1 mongodb
// 进入目录
[root@instance-xfl1djr7 local]$ cd mongodb/
// 创建配置文件文件夹
[root@instance-xfl1djr7 mongodb]$ mkdir etc
// 新建配置文件并编辑
[root@instance-xfl1djr7 mongodb]$ vim mongodb.conf

mongodb.conf 内容如下:

# 日志文件位置,目录不存在需要自己手动创建
logpath=/data/db/journal/mongodb.log

# 以追加方式写入日志
logappend=true

# 是否以守护进程方式运行
fork=true

# 默认27017
port=27017

# mongodb所绑定的ip地址,如果想要外网则设置为 bind_id=0.0.0.0
bind_ip=127.0.0.1

# 数据库文件位置,目录不存在需要自己手动创建
dbpath=/data/db

# 是否以安全认证方式运行,默认是不认证的非安全方式,这里先无验证的方式启动,设置好访问用户及密码后修改为验证方式运行
#auth=true

下面创建数据库、日志文件目录

root@instance-xfl1djr7 mongodb]$ mkdir -p /data/db/journal

启动

这里通过配置文件的方式进行启动,当然也可以直接在命令行添加一些配置参数进行启动,这里不再介绍,推荐以配置文件方式启动

[root@instance-xfl1djr7 mongodb]$ /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf 

出现以下信息,说明启动成功:

about to fork child process, waiting until server is ready for connections.
forked process: 8988
child process started successfully, parent exiting

如果启动失败,修改配置文件,将 fork=true 修改为 fork=false 重新执行刚才的启动命令,启动错误信息就会输出到控制台,根据提示进行操作。

设置密码登录

登录 mongo 客户端

[root@instance-xfl1djr7 mongodb]$ /usr/local/mongodb/bin/mongo

设置管理员帐户
以下操作的命令参考自官方文档 - https://docs.mongodb.com/manual/tutorial/enable-authentication/

use admin
db.createUser(
  {
    user: "admin", // 这个名字可以改成其它名字
    pwd: "自己设置一个密码",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

设置完成后退出

停止 mongodb 服务,这里直接使用 kil 的方式结束进程

[root@instance-xfl1djr7 mongodb]$ ps -ef|grep mongod
root      8988     1  0 23:19 ?        00:00:06 /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf
root     10568  7375  0 23:45 pts/0    00:00:00 grep --color=auto mongod
[root@instance-xfl1djr7 mongodb]$ kill -9 8988
[root@instance-xfl1djr7 mongodb]# 

修改配置文件开启认证模式

# 是否以安全认证方式运行,默认是不认证的非安全方式,这里先无验证的方式启动,设置好访问用户及密码后修改为验证方式运行
auth=true

再次启动服务

[root@instance-xfl1djr7 mongodb]$ /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf 

以系统管理身份授权授权登录客户端

[root@instance-xfl1djr7 mongodb]$ /usr/local/mongodb/bin/mongo --port 27017  --authenticationDatabase "admin" -u "admin" -p

回车后。输入密码登录

下面以给 test 数据库设置访问权限为例添加一个用户

use test
db.createUser(
  {
    user: "test",
    pwd:  "123456",
    roles: [ { role: "readWrite", db: "test" }]
  }
)

设置完成后,下次想要访问 test 数据库就需要使用 test 帐号与密码进行授权登录了

[root@instance-xfl1djr7 mongodb]$ /usr/local/mongodb/bin/mongo --port 27017  --authenticationDatabase "test" -u "test" -p

外网访问

如果想要外网可以连接,需要修改配置文件中的 bing_id 为0.0.0.0

bind_ip=0.0.0.0

修改配置文件后杀死进程再次启动 mongodb,命令参考上文

将绑定 ip 修改为公网 ip 可能外网还无法连接,此时还需要防炎墙开放端口, mongodb 默认的是 27017 端口,如果自己在配置文件中修改了端口号,需要开启配置文件中设置的端口号

开启防火墙端口

[root@instance-xfl1djr7 bin]$ vim /etc/sysconfig/iptables

添加一行

-A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT

重启防火墙

[root@instance-xfl1djr7 bin]$ service iptables restart

查看防火墙开放端口

[root@instance-xfl1djr7 bin]$ netstat -ntlp

发现有 27017 则开放端口成功。

现在就可以通过外网或可视化工具进行连接了。

注意事项

  • 如果设置完成后外网还是无法访问,依次检查 阿里云安全组是否开放了27017端口(当然别的云服务器也是一样的)、服务器防火墙是否开启了27017端口、mongodb 配置文件中 bind_id 是否设置的 0.0.0.0

  • 如果以上都没有问题,提示权限错误,请检查帐号、密码是否正确、帐号、密码是对应数据库的,然后再确认一下是否设置了该帐号

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值