日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MongoDB數(shù)據(jù)庫登陸方法分享 (mongodb登陸數(shù)據(jù)庫)

MongoDB是一種基于文檔,支持動(dòng)態(tài)查詢的分布式數(shù)據(jù)庫,它使用一種稱為BSON的二進(jìn)制ON(Java Script Object Notation)格式來存儲(chǔ)數(shù)據(jù)。作為一款現(xiàn)代化的數(shù)據(jù)庫,MongoDB的安全策略也是非常嚴(yán)謹(jǐn)?shù)?。在MongoDB數(shù)據(jù)庫進(jìn)行操作之前,需要先進(jìn)行登陸驗(yàn)證,否則無法進(jìn)行任何操作。那么,如何進(jìn)行MongoDB數(shù)據(jù)庫的登陸呢?下面就為大家分享MongoDB數(shù)據(jù)庫的登陸方法。

發(fā)展壯大離不開廣大客戶長(zhǎng)期以來的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及門簾等,在網(wǎng)站建設(shè)、成都全網(wǎng)營(yíng)銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

一、使用用戶和密碼進(jìn)行登陸

在使用MongoDB數(shù)據(jù)庫時(shí),如果需要進(jìn)行登陸驗(yàn)證,則可以使用用戶名和密碼進(jìn)行身份驗(yàn)證。具體的登陸方法如下:

1. 啟動(dòng)MongoDB服務(wù),并打開控制臺(tái)界面。

2. 在控制臺(tái)中輸入以下命令:

“`mongo –username 用戶名 –password 密碼“`

其中,用戶名和密碼為登錄MongoDB數(shù)據(jù)庫的賬戶和密碼。

3. 如果輸入的用戶名和密碼正確,則控制臺(tái)窗口顯示:

“`

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/

>

“`

其中,最后一行的命令提示符 `>` 表示用戶已經(jīng)成功登錄。

二、使用認(rèn)證數(shù)據(jù)庫進(jìn)行登陸

1. 啟動(dòng)MongoDB服務(wù),并打開控制臺(tái)界面。

2. 在控制臺(tái)中輸入以下命令:

“`

mongo –port 端口號(hào) -u 用戶名 -p 密碼 –authenticationDatabase=認(rèn)證數(shù)據(jù)庫名稱

“`

其中,端口號(hào)為MongoDB服務(wù)的端口號(hào),用戶名和密碼為登錄MongoDB數(shù)據(jù)庫的賬戶和密碼,認(rèn)證數(shù)據(jù)庫名稱為用戶的認(rèn)證數(shù)據(jù)庫名稱。

3. 如果輸入的信息正確,則控制臺(tái)窗口會(huì)顯示該MongoDB服務(wù)的連接狀態(tài)。

三、使用認(rèn)證憑證進(jìn)行登陸

在MongoDB 2.6版本以后,提供了使用認(rèn)證憑證進(jìn)行登陸的方法,具體方法如下:

1. 在控制臺(tái)中輸入以下命令創(chuàng)建一個(gè)用戶賬號(hào):

“`

use admin

db.createUser (

{

user: “用戶名”,

pwd: “密碼”,

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

}

)

“`

其中,用戶名和密碼為登錄MongoDB數(shù)據(jù)庫的賬戶和密碼。

2. 創(chuàng)建用戶完成之后,使用以下命令進(jìn)行登陸:

“`

mongo -u 用戶名 -p 密碼 –authenticationDatabase admin

“`

然后,輸入賬號(hào)和密碼,即可成功登陸。

需要注意的是,使用認(rèn)證憑證進(jìn)行登陸時(shí),必須要有一個(gè)至少擁有 `userAdminAnyDatabase` 角色的用戶來進(jìn)行操作。

以上就是MongoDB數(shù)據(jù)庫的登陸方法,我們可以根據(jù)自己的需求來選擇使用哪種方法。同時(shí),為了數(shù)據(jù)庫的安全性,我們還應(yīng)該定期更改密碼或者使用更加嚴(yán)格的認(rèn)證方式,以提高數(shù)據(jù)庫的安全性。

相關(guān)問題拓展閱讀:

  • Oracle或sqlserver或mysql如何連接到MongoDB??
  • 如何啟動(dòng)MongoDB的WEB界面

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

個(gè)人感覺,,這時(shí)候,,你需要一個(gè) Navicat Premium

在MongoDB中,纖衫文檔是對(duì)數(shù)據(jù)的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各種語言的Driver)都會(huì)使用這種抽象,它的表現(xiàn)形式就是我們常說的BSON(Binary ON )。

BSON是一個(gè)輕量級(jí)的搏豎輪二進(jìn)制數(shù)據(jù)格式。

MongoDB能夠使用BSON,并將BSON作為數(shù)據(jù)的存儲(chǔ)存放在磁盤中。

當(dāng)Client端要將寫入文檔,使用查詢等等操作時(shí),需要將文檔編碼為BSON格式,然后再發(fā)送給Server端。同樣,Server端基信的返回結(jié)果也是編碼為BSON格式再放回給Client端的。

如何啟動(dòng)MongoDB的WEB界面

讓我們構(gòu)建一個(gè)簡(jiǎn)單的EmployeeManager Web服務(wù),我們將使用它來演示與MongoDB連接的HATEOAS。為了引導(dǎo)我們的

應(yīng)用程序

,我們將使用Spring Initializr。我們將使用Spring HATEOAS和Spring Data MongoDB作為依賴項(xiàng)。你應(yīng)該看到類似下圖2所示的內(nèi)容。  圖2 :引導(dǎo)應(yīng)用程序配置完成后,下載zip并將其作為Maven項(xiàng)目導(dǎo)入你喜神檔敬歡的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

一般來說,如果所有內(nèi)容都是全新安裝的,并且你沒有更改或修改任何Mongo屬性,則只需提供一個(gè)數(shù)據(jù)庫名稱(已經(jīng)通過GUI創(chuàng)建了一個(gè)數(shù)據(jù)庫名稱)。

spring.data.mongodb.database = EmployeeManager

另外,為了啟動(dòng)Mongo實(shí)例,作者創(chuàng)建了一個(gè)

.bat

,它指向安裝

文件夾

和數(shù)據(jù)文件夾。它是這樣的:”C:\Program Files\MongoDB\Server\3.6\bin\mongod” –dbpath D:\Inther\EmployeeManager\warehouse-data\db

現(xiàn)在,我們來快速創(chuàng)建模型。這里有兩個(gè)模型,員工模型和部門模型。檢查它們,確保有沒有參數(shù)、getter、setter、equals方法和hashCode生成的

構(gòu)造函數(shù)

。(不用擔(dān)心,所有代碼都在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;

}

現(xiàn)在我們已經(jīng)完成了模型的制作,讓我們來創(chuàng)建存儲(chǔ)庫,以便來測(cè)試持久性。存儲(chǔ)庫如下所示:

public interface EmployeeRepository

extends MongoRepository {

}

public interface DepartmentRepository

extends MongoRepository{

}

如上所示,這里沒有方法,因?yàn)榇蠹叶贾繱pring Data中的中心接口被命名為Repository,在其之上是CrudRepository,它提供了處理模型的基游慎本操作。在CrudRepository之上,我們有PagingAndSortingRepository,它為我們提供了一些擴(kuò)展功能,來簡(jiǎn)化分頁和排序訪問。在我們的案例中,最重要的是MongoRepository,它用于嚴(yán)格處理我們的Mongo實(shí)例。因此,對(duì)于我們的案例來說,除了那些現(xiàn)成的方法外,我們不需要任何其他方法,但是僅出于學(xué)習(xí)目的,作者在這里要提到的是你可以添加其他查詢方法的兩蠢昌種方法:

“惰性”(查詢創(chuàng)建):此策略將嘗試通過分析查詢方法的名稱并推斷關(guān)鍵字(例如findByLastnameAndFirstname)來構(gòu)建查詢。

編寫查詢:這里沒有什么特別的。例如,只用@Query注釋你的方法,然后自己編寫查詢。你也可以在MongoDB中編寫查詢。下面是基于ON的查詢方法的示例:

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

List findByTheEmployeesFirstname(String firstname);

至此,我們已經(jīng)可以測(cè)試我們持久性如何工作。我們只需要對(duì)模型進(jìn)行一些調(diào)整即可。通過調(diào)整,作者的意思是我們需要注釋一些東西。Spring Data MongoDB使用MappingMongoConverter將對(duì)象映射到文檔,下面是我們將要使用的一些注釋:

@Id :字段級(jí)別注釋,指出你的哪個(gè)字段是身份標(biāo)識(shí)。

@Document :類級(jí)別的注釋,用于表示該類將被持久化到數(shù)據(jù)庫中。

@DBRef :描述參考性的字段級(jí)別注釋。

注釋完成后,我們可以使用CommandLineRunner獲取數(shù)據(jù)庫中的一些數(shù)據(jù),CommandLineRunner是一個(gè)接口,用于在應(yīng)用程序完全啟動(dòng)時(shí)(即在run()方法之前)運(yùn)行代碼段。在下面,你可以看一下作者的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);

}

};

}

我們已經(jīng)創(chuàng)建了一些模型,并對(duì)它們進(jìn)行了持久化?,F(xiàn)在,我們需要一種與他們交互的方式。如上所說,所有代碼都可以在GitHub上找到,因此作者在這里將僅向我們展示一個(gè)域服務(wù)(接口和實(shí)現(xiàn))。接口如下:

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();

}

接口的實(shí)現(xiàn)如下:

@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();

}

}

這里沒有什么特別的要注意的,下面我們將繼續(xù)討論最后一個(gè)難題——控制器!你可以在下面看到員工資源的控制器實(shí)現(xiàn)。

@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);

}

}

因此,對(duì)于上面實(shí)現(xiàn)的所有方法,我們將自己定位在Richardson成熟度模型的第二級(jí),因?yàn)槲覀兪褂昧薍TTP動(dòng)詞并實(shí)現(xiàn)了CRUD操作?,F(xiàn)在,我們有了與數(shù)據(jù)進(jìn)行交互的方法,并且可以使用Postman,我們可以如下圖3所示檢索資源,或者可以如下圖4所示添加新資源。

圖3 :檢索ON中的部門列表

圖4:ON中添加新員工

修改/etc/mongodb.conf,添攔悔廳加如下行:

httpinterface=true

mongodb.conf內(nèi)容如下:

bash-4.2$ cat /etc/mongodb.conf

port=27017 #端口

dbpath= /data/mongodb #數(shù)據(jù)文件存放目錄

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

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

fork=true #以守護(hù)程序的方式前哪啟用,即在后臺(tái)運(yùn)行

maxConns=500 #更大同簡(jiǎn)隱時(shí)連接數(shù)

noauth=true #不啟用驗(yàn)證

journal=true

storageEngine=wiredTiger

httpinterface=true #啟動(dòng)http界面,端口號(hào)為28017

手動(dòng)用命令啟動(dòng)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)

查看啟動(dòng)日志:

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已成功啟動(dòng)。

查看本地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.當(dāng)前Mongodb的所有連接

2.各個(gè)數(shù)據(jù)庫和Collection的訪問統(tǒng)計(jì),包括:Reads, Writes, Queries, GetMores ,Inserts, Updates, Removes

3.寫鎖的狀態(tài)

4.以及日志文件的最后幾百行(安裝的mongodb默認(rèn)的日志文件位于/data/mongodb/logs/mongod.log)

5.所有的MongoDB命令

1:log一定要指定一個(gè)xxx.log文件(文件不存在也要這么寫,會(huì)自動(dòng)創(chuàng)建,寫成這樣是不可以的–logpath d:\mongodb\logs)

2:serviceName的N字母要大寫

注意:這條命令要到MongoDB的bin目錄下運(yùn)行,剛開始的時(shí)候,我就直接在D:\下運(yùn)行,結(jié)果服務(wù)的可執(zhí)行目錄為【”D:\mongod” –logpath “D:\MongoDB\logs\MongoDB.log” –logappend –dbpath “D:\MongoDB\data” –directoryperdb –service 】,肯定是不對(duì)的。

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

數(shù)據(jù)文件目錄:E:\APMServ5.2.6\MongoDb\data,并且參數(shù)–directoryperdb說明每個(gè)DB都會(huì)新建一個(gè)目錄;

Windows服務(wù)的名稱:MongoDB;

以上的三個(gè)參數(shù)都是可以根據(jù)自肆手己的情況而定的,呵呵。

最后是閉雹裂安裝參數(shù):–install,與之相對(duì)的是–remove

啟動(dòng)MongoDB:net start MongoDB

停止MongoDB:net stop MongoDB

刪除MongoDB:sc delete MongoDB

運(yùn)行→regedit→注轎閉冊(cè)表編輯器→HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services 下面顯示的就是所安裝的服務(wù)項(xiàng),刪除相應(yīng)的就好

mongodb登陸數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于mongodb登陸數(shù)據(jù)庫,MongoDB數(shù)據(jù)庫登陸方法分享,Oracle或sqlserver或mysql如何連接到MongoDB??,如何啟動(dòng)MongoDB的WEB界面的信息別忘了在本站進(jìn)行查找喔。

成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營(yíng)銷推廣服務(wù)眾多企業(yè)。電話:028-86922220


新聞名稱:MongoDB數(shù)據(jù)庫登陸方法分享 (mongodb登陸數(shù)據(jù)庫)
文章位置:http://www.dlmjj.cn/article/dhgpipe.html