我是靠谱客的博主 贤惠学姐,这篇文章主要介绍MongoDB从零安装到SHELL管理到远程连接配置与编程访问引入1. CentOS下安装MongoDB的步骤2. Mongo Shell使用3. 无法远程访问mongo的解决方法4. MongoGUI的使用5. pymongo访问Mongo的示例代码参考,现在分享给大家,希望可以做个参考。

引入

本文主要讲下面几点:

  1. 在CentOS下安装mongo的过程

  2. 安装完成后,本地访问mongo以及在mongo shell下基础的mongo管理命令

  3. 无法远程访问mongo的解决方法

本文环境

  • CentOS Linux 7 (Core)
  • MongoDB 4.2
  • 远程连接:Windows 10, 远程GUI工具 studio3T

1. CentOS下安装MongoDB的步骤

mongo的官方文档[1]中给出了详细的安装步骤,我这里跳过了部分步骤,一切按照default的配置来安装。

  1. 配置yum源

我们每次运行yum install时,它都会解析/etc/yum.repos.d下所有以.repo结尾的配置文件,这些配置文件指定了yum服务器的地址。

将如下内容写入到/etc/yum.repos.d/mongodb-org-4.2.repo

复制代码
1
2
3
4
5
6
7
[mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

打开文件时,需要加sudo,才可以保存

复制代码
1
2
sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo
  1. 安装Mongo
复制代码
1
2
sudo yum install -y mongodb-org
  1. 启动MongoDB
复制代码
1
2
sudo service mongod start

与之类似的另一条常用命令是“重启”,如果修改了某些配置,就需要重启mongo。

复制代码
1
2
sudo service mongod restart
  1. 确认启动是否成功

若启动成功,在/var/log/mongodb/mongod.log中,能查看到启动的log,以及端口,配置文件位置的输出。

默认的配置文件和端口为/etc/mongod.conf, 27017。

2. Mongo Shell使用

在安装mongo的服务器本地,执行mongo命令,就能进入mongo shell。

复制代码
1
2
3
4
5
6
$ mongo MongoDB shell version v4.2.0 connecting to: mongodb://127.0.0.1:27017/ Implicit session: session { "id" : UUID("xx-xxx-x-xx-xxx") } >

在shell中,可以使用命令来管理mongo。

初次安装的mongo,为了能让它被远程连接,也需要跟随如下步骤依次进行配置。

  1. 查看所有DB
复制代码
1
2
> show dbs
  1. 使用某个DB
复制代码
1
2
> use <dbname>
  1. 列出所有collections
复制代码
1
2
> show collections

在执行这条命令前,需要用上一条“use”命令,选中某个db。

  1. 查看用户
复制代码
1
2
> show users

在执行这条命令前,需要用上一条“use”命令,选中某个db。才能用本条命令查看使用某个db的所有用户。

  1. 添加用户

mongo没有提供创建DB的命令[3]。为了能对mongo添加用户名和密码,我们只能在默认的admin这个DB上创建用户。

复制代码
1
2
3
4
5
6
7
8
> use admin > db.createUser( { user: "test", pwd: "test", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
  1. 添加一个collection

在某个DB下,添加一个叫做test的collection。

复制代码
1
2
3
> db.createCollection('test') { "ok" : 1 }

在执行这条命令前,需要用上一条“use”命令,选中某个db。

  1. 往collection中插入document
复制代码
1
2
> db.test.insertOne( {"_id":11, "key":"value"} )

在执行这条命令前,需要用上一条“use”命令,选中某个db。

  1. 查找

在某个DB的collection中查找’key’=='value’的内容:

复制代码
1
2
3
4
5
> db.test.find( {'key':'value'} ) { "_id" : 10, "key" : "value" } { "_id" : 11, "key" : "value" } { "_id" : 12, "key" : "value" }

3. 无法远程访问mongo的解决方法

首次安装后,mongo可以在本地用上面的命令进行访问,但无法在远程的GUI或python代码中链接,远程访问报错如下:

复制代码
1
2
No connection could be made because the target machine actively refused it

这是一个网络问题,应该从如下几点来解决:

  1. 关闭防火墙

查看防火墙状态,必须是关闭状态(如下)

复制代码
1
2
3
$ firewall-cmd --state not running

若不是关闭状态,用如下命令关闭防火墙

复制代码
1
2
$ systemctl stop firewalld.service
  1. 关闭selinux

查看selinux的状态,必须为关闭(如下)

复制代码
1
2
3
4
$ sestatus SELinux status: disabled

若不是关闭状态,用如下命令关闭

临时关闭

复制代码
1
2
$ setenforce 0

永久关闭

复制代码
1
2
3
$ sudo vim /etc/selinux/config SELINUX=disabled
  1. 删除mongod.lock文件
复制代码
1
2
3
$ sudo rm /var/lib/mongodb/mongod.lock $ sudo service mongodb restart
  1. 修改mongod.conf配置

/var/log/mongodb/mongod.log中,能查看到启动的log,以及配置文件位置的输出。默认的配置文件为/etc/mongod.conf

将 bind_ip = 127.0.0.1 改为 bind_ip = 0.0.0.0 即可。

4. MongoGUI的使用

Studio 3T for MongoDB,是一个比较好用的Mongo GUI工具。

首次创建的MongoDB,使用GUI工具连接前,必须要使用db.createUser添加用户(见上面的2.5),然后就可以用这个用户名和密码进行访问了。

在Studio 3T中,就可以“Add Database”,或者在某个DB中添加用户并为其设置读写权限了(右键,“Manage Users”)。

5. pymongo访问Mongo的示例代码

可以使用如下python代码来测试mongo远程连接是否成功。

复制代码
1
2
3
4
5
6
7
8
9
10
import pymongo host = "10.x.x.x:27017" dbname="test" username = "test" password = "test" client = pymongo.MongoClient(host) client.the_database.authenticate(username, password, source=dbname) db = client[dbname] print(db.list_collection_names())

更多pymongo示例代码见我的github [4]

参考

  • [1] https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
  • [2] Mongo Shell命令。 https://docs.mongodb.com/manual/reference/mongo-shell/
  • [3] https://tecadmin.net/create-and-drop-database-in-mongodb/
  • [4] https://github.com/ybdesire/pylearn/tree/master/mongodb

最后

以上就是贤惠学姐最近收集整理的关于MongoDB从零安装到SHELL管理到远程连接配置与编程访问引入1. CentOS下安装MongoDB的步骤2. Mongo Shell使用3. 无法远程访问mongo的解决方法4. MongoGUI的使用5. pymongo访问Mongo的示例代码参考的全部内容,更多相关MongoDB从零安装到SHELL管理到远程连接配置与编程访问引入1.内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(118)

评论列表共有 0 条评论

立即
投稿
返回
顶部