>  기사  >  데이터 베이스  >  mongodb에서 자신만의 데이터베이스를 빠르게 구축하는 방법

mongodb에서 자신만의 데이터베이스를 빠르게 구축하는 방법

青灯夜游
青灯夜游원래의
2018-09-21 17:03:472318검색

이 장에서는 mongodb에서 자신만의 데이터베이스를 빠르게 구축하는 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

mongoddb 설치

  • 로컬로 설치

공식 홈페이지mongodb

  • 클라우드 서버(centos 시스템)에 설치

머신에 해당하는 압축 패키지를 직접 다운로드하세요mongodb에서 자신만의 데이터베이스를 빠르게 구축하는 방법

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.9.tgztar zxvf mongodb-linux-x86_64-3.2.6.tgz
mv mongodb-linux-x86_64-3.2.6.tgz mongodb
cd mongodb

시스템에 맞게 해당 버전을 다운로드 받으세요~

환경 구성 및 서버 시작


파일 디렉터리에 데이터를 저장할 폴더를 생성합니다. 일반 디렉터리는 /usr/local/mongodb입니다. /data/db/ Pass 명령을 실행하여 mongodb

./bin/mongod --dbpath=/usr/local/mongodb/data/db/ --rest

여기에 강조 표시할 몇 가지 매개 변수가 있습니다. Mongod는 mongodb의 명령줄 지원을 시작할 수 있습니다. 필요한 경우 /etc/profile을 편집하여 전역 환경에 들어갈 수 있습니다. .dbpath는 다음에 해당하는 데이터 경로입니다. 생성한 데이터 디렉터리이면 충분합니다. --rest는 그래픽 지원입니다. mongodb의 기본 경로는 //localhost:27017입니다. 성공적인 작업 후 이 주소에 액세스하면 나머지 매개변수를 추가하면 //localhost:28017

/에 액세스할 수 있습니다. shell일반적인 명령:

#查询所有数据库    show dbs;
#删除当前使用数据库   db.dropDatabase(); 
#克隆主机数据   db.cloneDatabase(“127.0.0.1”); 
#修复当前数据库 db.repairDatabase(); 
#查看当前使用的数据库  db.getName(); 
#显示当前db状态  db.stats(); 
#查看当前db的链接机器地址  db.version();

클라우드 서버에 mongodb 환경 배포

이제 클라우드가 매우 인기가 많아 많은 사람들이 프로젝트 배포를 위해 클라우드 서버를 선택합니다. 클라우드의 mongodb 구성.

./bin/mongod --fork --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/data/log/error.log -logappend --rest
데이터베이스를 클라우드 서버에 배포할 때 백그라운드에서 실행해야 합니다. Centos Forever 플러그인을 처음 사용했을 때 데이터베이스를 백그라운드에서 실행할 수 없다는 것을 알았습니다. 정보를 확인한 결과, 백그라운드 서비스를 시작하는 공식 명령 --logpath --logappend 매개변수가 있어 백그라운드 서비스에 로그 로그를 추가하는 것을 발견했습니다. 나머지 효과는 위와 동일합니다.

데이터베이스를 더 직관적으로 만드세요

밀집된 데이터가 보기 흉하지 않나요? 기분이 안 좋나요? 이때 데이터베이스를 아름답게 하기 위한 플러그인이 필요합니다. 인터넷에는 mongovue, adminmongo 등이 많이 있습니다. Github에서 검색하거나 확인할 수 있습니다.

다음은 데이터베이스 암호화에 관한 내용입니다. 온라인에서 공격을 받은 후 경험을 통해 배우고 암호화 프로세스를 업데이트했습니다.

최고 관리자 추가

먼저 데이터베이스를 실행하고 성공 후 쉘 작업을 실행합니다.

> use admin
> db.createUser(
   {
     user: "your name",
     pwd: "your pwd",
     roles: [ { role: "root", db: "admin" } ]
   }
)
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

root는 슈퍼 권한을 의미하므로 슈퍼 권한이 있는 계정이 생성됩니다. 다음 명령을 사용하여 사용자를 볼 수 있습니다.

[이미지_088895.png 업로드 .]

db.getUsers()
MongoDB 데이터베이스 역할

역할은 데이터베이스를 관리하고 제어할 수 있는 권한을 말하며, 첫 번째 사용자는 루트 사용자가 바람직하며 수행할 수 있습니다. 어떤 작업이든

초기화 시 루트 권한이 있는 사용자를 생성하는 것이 가장 좋습니다. 인증 모드가 켜져 있으면 모든 작업을 실행하려면 권한이 필요합니다. 인증을 사용하여 백그라운드 실행 모드를 직접 시작하면 안 됩니다. 그렇지 않으면 데이터베이스를 닫을 수 있는 권한이 없습니다.
  • Read: 사용자가 지정된 데이터베이스를 읽을 수 있도록 허용
  • readWrite: 사용자가 지정된 데이터베이스를 읽고 쓸 수 있도록 허용
  • dbAdmin: 사용자가 지정된 데이터베이스에서 인덱스 생성 등의 관리 기능을 수행할 수 있도록 허용 삭제, 통계 보기 또는 system.profile 액세스
  • userAdmin: 사용자가 system.users 컬렉션에 쓸 수 있도록 허용하고 지정된 데이터베이스에서 사용자를 생성, 삭제 및 관리할 수 있습니다
  • clusterAdmin: 관리자 데이터베이스에서만 사용 가능 , 사용자에게 모든 샤드 및 복제 제공 관련 기능에 대한 관리 권한을 설정합니다.
  • readAnyDatabase: 관리자 데이터베이스에서만 사용할 수 있으며 사용자에게 모든 데이터베이스에 대한 읽기 권한을 제공합니다.
  • readWriteAnyDatabase: 관리자 데이터베이스에서만 사용할 수 있으며 사용자에게 모든 데이터베이스에 대한 읽기 및 쓰기 권한을 제공합니다.
  • userAdminAnyDatabase: admin에서만 사용 가능 데이터베이스에서 사용 가능하며 사용자에게 모든 데이터베이스에 대한 userAdmin 권한을 제공합니다.
  • dbAdminAnyDatabase: admin 데이터베이스에서만 사용 가능하며 사용자에게 모든 데이터베이스에 대한 dbAdmin 권한을 제공합니다.
  • root: 관리자 데이터베이스에서만 사용할 수 있습니다. 슈퍼 계정, 슈퍼 권한

인증 모드 활성화

슈퍼 관리자를 생성한 후 실제로 암호화된 데이터베이스를 시작할 수 있습니다. 그렇지 않으면 자신도 데이터베이스를 운영할 권한이 없습니다.

 //后台模式需要在shell中关闭之前的普通模式数据库,输入以下命令
 > use admin
 > db.shutdownServer()
//终端 启动加密数据库 --auth
$ ./bin/mongod --fork --dbpath=/root/mongodb/db/ --logpath=/root/mongodb/log/error.log -logappend --auth
//通过命令运行数据库 ,在你的运行命令加上后缀 --auth,这样就启动了加密数据库 ,再次执行数据库操作
> show dbs
2017-09-23T14:09:58.922+0800 E QUERY    [thread1] Error: listDatabases failed:{
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
    "code" : 13,
    "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
//  发现报错,需要认证信息
> db.auth('your name','your pwd')
成功返回1  失败返回0 输入之前创建的超级账号,OK,简单的加密就完成了。
mongodb에서 자신만의 데이터베이스를 빠르게 구축하는 방법

암호화에 성공했습니다. 데이터베이스를 작동하려면 인증이 필요합니다🎜

链接加密数据库

数据库加密后我们的服务端代码也要相应变动。

xxx.db('mongodb://your name: your pwd@localhost:27017/db?authSource=admin');

xxx表示你用的插件 比如 mongoose 、mongoskin之类的。

到此为止,你的数据库就加密完成了,当你的项目变大,你也许还需要创建许多用户,或者升级用户权限,这些官方都有相关的API去操作。

위 내용은 mongodb에서 자신만의 데이터베이스를 빠르게 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.