MongoDB数据库登陆方法分享 (mongodb登陆数据库)

MongoDB是一种基于文档,支持动态查询的分布式数据库,它使用一种称为BSON的二进制ON(Java Script Object Notation)格式来存储数据。作为一款现代化的数据库,MongoDB的安全策略也是非常严谨的。在MongoDB数据库进行操作之前,需要先进行登陆验证,否则无法进行任何操作。那么,如何进行MongoDB数据库的登陆呢?下面就为大家分享MongoDB数据库的登陆方法。

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及门帘等,在网站建设成都全网营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。

一、使用用户和密码进行登陆

在使用MongoDB数据库时,如果需要进行登陆验证,则可以使用用户名和密码进行身份验证。具体的登陆方法如下:

1. 启动MongoDB服务,并打开控制台界面。

2. 在控制台中输入以下命令:

“`mongo –username 用户名 –password 密码“`

其中,用户名和密码为登录MongoDB数据库的账户和密码。

3. 如果输入的用户名和密码正确,则控制台窗口显示:

“`

MongoDB shell version v4.4.1

connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb

Implicit session: session { “id” : UUID(“c350699a-b2bb-445f-9abf-88146b0442dd”) }

MongoDB server version: 4.4.1

Welcome to the MongoDB shell.

For interactive help, type “help”.

For more comprehensive documentation, see

http://docs.mongodb.org/

>

“`

其中,最后一行的命令提示符 `>` 表示用户已经成功登录。

二、使用认证数据库进行登陆

1. 启动MongoDB服务,并打开控制台界面。

2. 在控制台中输入以下命令:

“`

mongo –port 端口号 -u 用户名 -p 密码 –authenticationDatabase=认证数据库名称

“`

其中,端口号为MongoDB服务的端口号,用户名和密码为登录MongoDB数据库的账户和密码,认证数据库名称为用户的认证数据库名称。

3. 如果输入的信息正确,则控制台窗口会显示该MongoDB服务的连接状态。

三、使用认证凭证进行登陆

在MongoDB 2.6版本以后,提供了使用认证凭证进行登陆的方法,具体方法如下:

1. 在控制台中输入以下命令创建一个用户账号:

“`

use admin

db.createUser (

{

user: “用户名”,

pwd: “密码”,

roles: [ { role: “userAdminAnyDatabase”, db: “admin” }, “readWriteAnyDatabase” ]

}

)

“`

其中,用户名和密码为登录MongoDB数据库的账户和密码。

2. 创建用户完成之后,使用以下命令进行登陆:

“`

mongo -u 用户名 -p 密码 –authenticationDatabase admin

“`

然后,输入账号和密码,即可成功登陆。

需要注意的是,使用认证凭证进行登陆时,必须要有一个至少拥有 `userAdminAnyDatabase` 角色的用户来进行操作。

以上就是MongoDB数据库的登陆方法,我们可以根据自己的需求来选择使用哪种方法。同时,为了数据库的安全性,我们还应该定期更改密码或者使用更加严格的认证方式,以提高数据库的安全性。

相关问题拓展阅读:

  • Oracle或sqlserver或mysql如何连接到MongoDB??
  • 如何启动MongoDB的WEB界面

Oracle或sqlserver或mysql如何连接到MongoDB??

个人感觉,,这时候,,你需要一个 Navicat Premium

在MongoDB中,纤衫文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各种语言的Driver)都会使用这种抽象,它的表现形式就是我们常说的BSON(Binary ON )。

BSON是一个轻量级的搏竖轮二进制数据格式。

MongoDB能够使用BSON,并将BSON作为数据的存储存放在磁盘中。

当Client端要将写入文档,使用查询等等操作时,需要将文档编码为BSON格式,然后再发送给Server端。同样,Server端基信的返回结果也是编码为BSON格式再放回给Client端的。

如何启动MongoDB的WEB界面

让我们构建一个简单的EmployeeManager Web服务,我们将使用它来演示与MongoDB连接的HATEOAS。为了引导我们的

应用程序

,我们将使用Spring Initializr。我们将使用Spring HATEOAS和Spring Data MongoDB作为依赖项。你应该看到类似下图2所示的内容。  图2 :引导应用程序配置完成后,下载zip并将其作为Maven项目导入你喜神档敬欢的IDE中。 首先,让我们配置application.properties。要获得MongoDB连接,spring.data.mongodb.host= //Mongo server host

spring.data.mongodb.port= //Mongo server port

spring.data.mongodb.username= //Login user

spring.data.mongodb.password= //Password

spring.data.mongodb.database= //Database name

一般来说,如果所有内容都是全新安装的,并且你没有更改或修改任何Mongo属性,则只需提供一个数据库名称(已经通过GUI创建了一个数据库名称)。

spring.data.mongodb.database = EmployeeManager

另外,为了启动Mongo实例,作者创建了一个

.bat

,它指向安装

文件夹

和数据文件夹。它是这样的:”C:\Program Files\MongoDB\Server\3.6\bin\mongod” –dbpath D:\Inther\EmployeeManager\warehouse-data\db

现在,我们来快速创建模型。这里有两个模型,员工模型和部门模型。检查它们,确保有没有参数、getter、setter、equals方法和hashCode生成的

构造函数

。(不用担心,所有代码都在GitHub上,你可以稍后查看它:

public class Employee {

private String employeeId;

private String firstName;

private String lastName;

private int age;

}

public class Department {

private String department;

private String name;

private String description;

private List employees;

}

现在我们已经完成了模型的制作,让我们来创建存储库,以便来测试持久性。存储库如下所示:

public interface EmployeeRepository

extends MongoRepository {

}

public interface DepartmentRepository

extends MongoRepository{

}

如上所示,这里没有方法,因为大家都知道Spring Data中的中心接口被命名为Repository,在其之上是CrudRepository,它提供了处理模型的基游慎本操作。在CrudRepository之上,我们有PagingAndSortingRepository,它为我们提供了一些扩展功能,来简化分页和排序访问。在我们的案例中,最重要的是MongoRepository,它用于严格处理我们的Mongo实例。因此,对于我们的案例来说,除了那些现成的方法外,我们不需要任何其他方法,但是仅出于学习目的,作者在这里要提到的是你可以添加其他查询方法的两蠢昌种方法:

“惰性”(查询创建):此策略将尝试通过分析查询方法的名称并推断关键字(例如findByLastnameAndFirstname)来构建查询。

编写查询:这里没有什么特别的。例如,只用@Query注释你的方法,然后自己编写查询。你也可以在MongoDB中编写查询。下面是基于ON的查询方法的示例:

@Query(“{ ‘firstname’ : ?0 }”)

List findByTheEmployeesFirstname(String firstname);

至此,我们已经可以测试我们持久性如何工作。我们只需要对模型进行一些调整即可。通过调整,作者的意思是我们需要注释一些东西。Spring Data MongoDB使用MappingMongoConverter将对象映射到文档,下面是我们将要使用的一些注释:

@Id :字段级别注释,指出你的哪个字段是身份标识。

@Document :类级别的注释,用于表示该类将被持久化到数据库中。

@DBRef :描述参考性的字段级别注释。

注释完成后,我们可以使用CommandLineRunner获取数据库中的一些数据,CommandLineRunner是一个接口,用于在应用程序完全启动时(即在run()方法之前)运行代码段。在下面,你可以看一下作者的Bean配置。

@Bean public CommandLineRunner init(EmployeeRepository employeeRepository, DepartmentRepository departmentRepository) {

return (args) -> {

employeeRepository.deleteAll();

departmentRepository.deleteAll();

Employee e = employeeRepository.save(new Employee(“Ion”, “Pascari”, 23));

departmentRepository.save(new Department(“Service Department”, “Service Rocks!”, Arrays.asList(e)));

for (Department d : departmentRepository.findAll()) {

LOGGER.info(“Department: ” + d);

}

};

}

我们已经创建了一些模型,并对它们进行了持久化。现在,我们需要一种与他们交互的方式。如上所说,所有代码都可以在GitHub上找到,因此作者在这里将仅向我们展示一个域服务(接口和实现)。接口如下:

public interface EmployeeService {

Employee saveEmployee(Employee e);

Employee findByEmployeeId(String employeeId);

void deleteByEmployeeId(String employeeId);

void updateEmployee(Employee e);

boolean employeeExists(Employee e);

List findAll();

void deleteAll();

}

接口的实现如下:

@Service public class EmployeeServiceImpl implements EmployeeService {

@Autowired

private EmployeeRepository employeeRepository;

@Override

public Employee saveEmployee(Employee e) {

return employeeRepository.save(e);

}

@Override

public Employee findByEmployeeId(String employeeId) {

return employeeRepository.findOne(employeeId);

}

@Override

public void deleteByEmployeeId(String employeeId) {

employeeRepository.delete(employeeId);

}

@Override

public void updateEmployee(Employee e) {

employeeRepository.save(e);

}

@Override

public boolean employeeExists(Employee e) {

return employeeRepository.exists(Example.of(e));

}

@Override

public List findAll() {

return employeeRepository.findAll();

}

@Override

public void deleteAll() {

employeeRepository.deleteAll();

}

}

这里没有什么特别的要注意的,下面我们将继续讨论最后一个难题——控制器!你可以在下面看到员工资源的控制器实现。

@RestController

@RequestMapping(“/employees”)

public class EmployeeController {

@Autowired

private EmployeeService employeeService;

@RequestMapping(value = “/list/”, method = RequestMethod.GET)

public HttpEntity> getAllEmployees() {

List employees = employeeService.findAll();

if (employees.isEmpty()) {

return new ResponseEntity(HttpStatus.NO_CONTENT);

} else {

return new ResponseEntity(employees, HttpStatus.OK);

}

}

@RequestMapping(value = “/employee/{id}”, method = RequestMethod.GET)

public HttpEntity getEmployeeById(@PathVariable(“id”) String employeeId) {

Employee byEmployeeId = employeeService.findByEmployeeId(employeeId);

if (byEmployeeId == null) {

return new ResponseEntity(HttpStatus.NOT_FOUND);

} else {

return new ResponseEntity(byEmployeeId, HttpStatus.OK);

}

}

@RequestMapping(value = “/employee/”, method = RequestMethod.POST)

public HttpEntity saveEmployee(@RequestBody Employee e) {

if (employeeService.employeeExists(e)) {

return new ResponseEntity(HttpStatus.CONFLICT);

} else {

Employee employee = employeeService.saveEmployee(e);

URI location = ServletUriComponentsBuilder   .fromCurrentRequest().path(“/employees/employee/{id}”)

.buildAndExpand(employee.getEmployeeId()).toUri();

HttpHeaders httpHeaders = new HttpHeaders();

httpHeaders.setLocation(location);

return new ResponseEntity(httpHeaders, HttpStatus.CREATED);

}

}

@RequestMapping(value = “/employee/{id}”, method = RequestMethod.PUT)

public HttpEntity updateEmployee(@PathVariable(“id”) String id, @RequestBody Employee e) {

Employee byEmployeeId = employeeService.findByEmployeeId(id);

if(byEmployeeId == null){

return new ResponseEntity(HttpStatus.NOT_FOUND);

} else {

byEmployeeId.setAge(e.getAge());

byEmployeeId.setFirstName(e.getFirstName());

byEmployeeId.setLastName(e.getLastName());

employeeService.updateEmployee(byEmployeeId);

return new ResponseEntity(employeeService, HttpStatus.OK);

}

}

@RequestMapping(value = “/employee/{id}”, method = RequestMethod.DELETE)

public ResponseEntity deleteEmployee(@PathVariable(“id”) String employeeId) {

employeeService.deleteByEmployeeId(employeeId);

return new ResponseEntity(HttpStatus.NO_CONTENT);

}

@RequestMapping(value = “/employee/”, method = RequestMethod.DELETE)

public ResponseEntity deleteAll() {

employeeService.deleteAll();

return new ResponseEntity(HttpStatus.NO_CONTENT);

}

}

因此,对于上面实现的所有方法,我们将自己定位在Richardson成熟度模型的第二级,因为我们使用了HTTP动词并实现了CRUD操作。现在,我们有了与数据进行交互的方法,并且可以使用Postman,我们可以如下图3所示检索资源,或者可以如下图4所示添加新资源。

图3 :检索ON中的部门列表

图4:ON中添加新员工

修改/etc/mongodb.conf,添拦悔厅加如下行:

httpinterface=true

mongodb.conf内容如下:

bash-4.2$ cat /etc/mongodb.conf

port=27017 #端口

dbpath= /data/mongodb #数据文件存放目录

logpath= /data/mongodb/logs/mongodb.log #日志文件存放目录

logappend=true #使用追加的方式写日志

fork=true #以守护程序的方式前哪启用,即在后台运行

maxConns=500 #更大同简隐时连接数

noauth=true #不启用验证

journal=true

storageEngine=wiredTiger

httpinterface=true #启动http界面,端口号为28017

手动用命令启动mongodb:

bash-4.2$ mongod –config /etc/mongodb.conf –rest

about to fork child process, waiting until server is ready for connections.

forked process: 4203

child process started successfully, parent exiting

……………………………………………………………………

(注释: –rest代表turn on simple rest api)

查看启动日志:

bash-4.2$ tail -f /data/mongodb/logs/mongodb.log

T17:29:13.766+0800 I CONTROL

T17:29:13.996+0800 I FTDC Initializing

full-time diagnostic data capture with directory

‘/data/mongodb/diagnostic.data’

T17:29:13.999+0800 I NETWORK admin web console waiting for connections on port 28017

T17:29:13.999+0800 I NETWORK Starting hostname canonicalization worker

T17:29:14.023+0800 I NETWORK waiting for connections on port 27017

T17:29:16.631+0800 I NETWORK connection accepted from 127.0.0.1:50609 #1 (1 connection now open)

T17:29:34.679+0800 I NETWORK Socket recv() errno:11 Resource temporarily unavailable 192.168.23.1:61067

T17:29:52.455+0800 I NETWORK Socket recv() errno:11 Resource temporarily unavailable 192.168.23.1:61076

T17:30:00.455+0800 I NETWORK Socket recv() errno:11 Resource temporarily unavailable 192.168.23.1:61077

T17:30:33.228+0800 I NETWORK end connection 127.0.0.1:50609 (0 connections now open)

waiting for connections on port 27017字样代表MongoDB已成功启动。

查看本地IP地址:

bash-4.2$ ifconfig -a

eno: flags=4163 mtu 1500

inet 192.168.23.131 netmask 255.255.255.0 broadcast 192.168.23.255

inet6 fe80::20c:29ff:feb2:3e46 prefixlen 64 scopeid 0x20

ether 00:0c:29:b2:3e:46 txqueuelen(Ethernet)

RX packetytes(1.9 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packetytes(155.6 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

打开本地浏览器,输入以下地址:

通过web页面可以看到:

1.当前Mongodb的所有连接

2.各个数据库和Collection的访问统计,包括:Reads, Writes, Queries, GetMores ,Inserts, Updates, Removes

3.写锁的状态

4.以及日志文件的最后几百行(安装的mongodb默认的日志文件位于/data/mongodb/logs/mongod.log)

5.所有的MongoDB命令

1:log一定要指定一个xxx.log文件(文件不存在也要这么写,会自动创建,写成这样是不可以的–logpath d:\mongodb\logs)

2:serviceName的N字母要大写

注意:这条命令要到MongoDB的bin目录下运行,刚开始的时候,我就直接在D:\下运行,结果服务的可执行目录为【”D:\mongod” –logpath “D:\MongoDB\logs\MongoDB.log” –logappend –dbpath “D:\MongoDB\data” –directoryperdb –service 】,肯定是不对的。

该命令行指定了日志文件:E:\APMServ5.2.6\MongoDb\logs\MongoDB.log,日志是以追加的方式输出的;

数据文件目录:E:\APMServ5.2.6\MongoDb\data,并且参数–directoryperdb说明每个DB都会新建一个目录;

Windows服务的名称:MongoDB;

以上的三个参数都是可以根据自肆手己的情况而定的,呵呵。

最后是闭雹裂安装参数:–install,与之相对的是–remove

启动MongoDB:net start MongoDB

停止MongoDB:net stop MongoDB

删除MongoDB:sc delete MongoDB

运行→regedit→注轿闭册表编辑器→HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services 下面显示的就是所安装的服务项,删除相应的就好

mongodb登陆数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mongodb登陆数据库,MongoDB数据库登陆方法分享,Oracle或sqlserver或mysql如何连接到MongoDB??,如何启动MongoDB的WEB界面的信息别忘了在本站进行查找喔。

成都服务器托管选创新互联,先上架开通再付费。
创新互联(www.cdcxhl.com)专业-网站建设,软件开发老牌服务商!微信小程序开发,APP开发,网站制作,网站营销推广服务众多企业。电话:028-86922220

当前名称:MongoDB数据库登陆方法分享 (mongodb登陆数据库)
URL网址:http://www.csdahua.cn/qtweb/news17/503067.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网