手机版

Ubuntu 16.04 (Xenial)安装配置MongoDB

时间:2020-05-13 来源:互联网 编辑:宝哥软件园 浏览:

MongoDB是一个数据库引擎,提供对非关系,面向文档的数据库的访问。 增长最快的NoSQL之一,旨在提供传统关系数据库管理系统(RDBMS)的替代方案。 除了无模式设计和可扩展架构之外,MongoDB还提供JSON输出和特定的语言特定绑定,使其特别适合在自定义应用程序开发中使用。 MongoDB已经用于许多大规模生产部署,并且是目前所有系统中最流行的数据库引擎之一。

安装MongoDB



从Ubuntu存储库安装MongoDB:

sudo apt-get install mongodb-server

配置MongoDB



MongoDB的配置文件位于/etc/mongodb.conf。 大多数设置都在文件中有很好的注释,我们在下面列出了一些更重要的选项:
dbpath表示存储数据库文件的位置(默认为/var/lib/mongodb)
logpath表示MongoDB的日志所在的位置(默认为/var/log/mongodb/mongodb.log)
logappend指示是否将新条目附加到日志的结尾,而不是在每次MongoDB重新启动后覆盖现有日志条目
bind_ip指定MongoDB应侦听的IP地址。 通常建议将此默认设置为127.0.0.1(localhost),除非您有特定的理由将其托管到公共互联网。 这里指定0.0.0.0将导致MongoDB在所有网络接口上侦听。
port指定默认网络端口27017,可以取消注释和修改
默认情况下,当注释掉或未明确定义auth时将禁用认证。 要利用MongoDB的内部身份验证功能,请通过删除行开头处的#,并将值设置为true来取消注释auth选项。
对MongoDB配置文件进行更改后,请重新启动服务,如下一节所示。

启动和停止MongoDB



要启动,重新启动或停止MongoDB服务,请从以下选项中执行适当的命令:

sudo systemctl start mongodb
sudo systemctl restart mongodb
sudo systemctl stop mongodb

创建数据库用户



如果在“配置MongoDB”小节中启用了认证,请在数据库上创建一个管理员:
1.运行mongodb命令打开shell:

mongo

2.默认情况下,MongoDB连接到一个名为test的数据库。 在添加任何用户之前,创建数据库以存储用于验证的用户数据:

use admin

3.使用以下命令创建能够在任何数据库上创建其他用户的管理用户。

db.createUser({user: "mongo-admin", pwd: "password", roles:[{role: "userAdminAnyDatabase", db: "admin"}]})

将这些凭证保存在安全的地方,以备将来参考。 输出将显示写入数据库的所有信息,密码除外:
Successfully added user: {
“user” : “mongo-admin”,
“roles” : [
{
“role” : “userAdminAnyDatabase”,
“db” : “admin”
}
]
}
4.退出mongo终端

quit()

5.使用在步骤3中创建的凭据,使用admin数据库进行身份验证来测试与MongoDB的连接:

mongo -u mongo-admin -p --authenticationDatabase admin

为了验证与shell的连接,需要上述命令中的-u和-p –authenticationDatabase选项。 没有身份验证,MongoDB shell可以被访问,但它不允许连接到数据库。
在步骤3中创建的mongo-admin用户纯粹是基于指定的角色的管理。 它被定义为所有数据库的用户管理员,但本身没有任何数据库权限。 您可以使用它来创建其他用户并定义他们的角色。 如果您使用多个应用程序与MongoDB,设置不同的用户具有对应的数据库的自定义权限。
6.作为mongo-admin用户,创建一个新的数据库来存储常规用户数据进行身份验证。 以下示例为user-data:

use user-data

不同数据库的权限在单独的角色对象中处理。 步骤7中的示例创建了用户example-user,对用户数据数据库具有只读权限,并且对我们将在下面的基本MongoDB函数部分中创建的示例数据库数据库具有读写权限。
7.创建新的非管理用户以输入测试数据。

db.createUser({user: "example-user", pwd: "password", roles:[{role: "read", db: "user-data"}, {role:"readWrite", db: "example-db"}]})

基本的MongoDB函数



MongoDB之所以欢迎大多数得益于易于集成。 通过JavaScript函数与数据库进行交互,并提供其他语言的驱动程序。 本节将演示一些基本功能,但我们建议您根据特定的用例进行进一步的研究。
1.使用我们上面创建的example-user打开MongoDB shell:

mongo -u example-user -p --authenticationDatabase user-data

2.创建新数据库example-db:

use example-db

请确保此数据库名称对应于用户具有读取和写入权限的数据库名称。
要显示当前工作数据库的名称,请运行db命令。
3.创建用于输入测试数据库的样本数据。 MongoDB接受输入为JSON对象形式的文档,如下面的那些。 a和b变量用于简化输入; 对象也可以通过函数直接插入。

var a = { name : "John Doe" }
var b = { age : 30 }

4.使用insert函数将数据插入到名为example的集合中。 如果您不熟悉MongoDB术语,则可以将集合视为与关系数据库管理系统中的表。

db.example.insert(a)
db.example.insert(b)

每个操作的输出将显示成功写入当前工作数据库的对象数:

WriteResult({ "nInserted" : 1 })

5.确认example集合已经被创建

show collections

输出将列出包含当前工作数据库中的数据的所有集合:

example
system.indexes

在这种情况下,example是我们创建的集合,而system.indexes是一个自动创建的索引集合,供MongoDB内部使用。
6.使用find函数查看example集合中的所有数据。 此函数还可用于通过输入搜索项参数来搜索特定字段:

db.example.find()

输出将类似于以下内容:
{ “_id” : ObjectId(“571a3e7507d0fcd78baef08f”), “name” : “John Doe” }
{ “_id” : ObjectId(“571a3e8707d0fcd78baef090”), “age” : 30 }

版权声明:Ubuntu 16.04 (Xenial)安装配置MongoDB是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐