Linux устанавливает mongoDB для удаленного подключения к NodeJs

MongoDB

1. Загрузите Linux-версию mongoDB.

Выходные данные

версия для разработки ----> версия для разработки

текущий выпуск ----> текущая стабильная версия

предыдущий выпуск ----> старая версия

системы Руководство

Ubuntu ----> 优般图
Linux legacy ----> 通用版
window ----> 不解释
RHEL Linux ----> 红帽
Amazon Linux ----> 亚马逊
Debian Linux ----> Debian
SUSE Linux ----> SUSE
  • В моей системе Linux установлена ​​CentOS 7, принадлежащая Red Hat, поэтому я выбрал mongoDB RHEL 7.2 Linux и разместил изображение каждой выбранной версии.

  • УстановитьЭта установка использует пакет tgz

1,安装wget
[root@izbp1b498epn4trb75oykez ~]# yum -y install wget
2,使用wget下载tgz包,我当前目录/usr/local/
[root@izbp1b498epn4trb75oykez local]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.9.tgz
3,新建mongoDB文件夹,将tgz文件解压至mongoDB文件夹下
[root@izbp1b498epn4trb75oykez local]# mkdir mongoDB
[root@izbp1b498epn4trb75oykez local]# tar -zxvf mongodb-linux-x86_64-rhel70-4.0.9.tgz -C /usr/local/mongoDB
4,进入mongoDB目录,查看目录文件,发现还有一个mongodb-linux-x86_64-rhel70-4.0.9目录,这个目录内才是mongoDB的文件,我们将这个目录内的文件移动到mongoDB目录下
[root@izbp1b498epn4trb75oykez local]# cd mongoDB/
[root@izbp1b498epn4trb75oykez mongoDB]# ls
mongodb-linux-s390x-rhel72-4.0.9
[root@izbp1b498epn4trb75oykez mongoDB]# cd mongodb-linux-x86_64-rhel70-4.0.9
[root@izbp1b498epn4trb75oykez mongodb-linux-x86_64-rhel70-4.0.9]# ls
bin  LICENSE-Community.txt  MPL-2  README  THIRD-PARTY-NOTICES
[root@izbp1b498epn4trb75oykez mongodb-linux-x86_64-rhel70-4.0.9]# mv * ../
5,删除已无用的mongodb-linux-x86_64-rhel70-4.0.9文件夹,(没有强迫症可不删)
[root@izbp1b498epn4trb75oykez mongoDB]# rm -rf mongodb-linux-x86_64-rhel70-4.0.9

2. Запуск конфигурации

  • Создайте каталог данных и его подкаталог db в корневом каталоге mongoDB, а также журналы каталога журнала и его файл журнала mongoLogs.log и файл конфигурации mongodb.conf, команды следующие:
[root@izbp1b498epn4trb75oykez mongoDB]# mkdir data
[root@izbp1b498epn4trb75oykez mongoDB]# mkdir data/db
[root@izbp1b498epn4trb75oykez mongoDB]# mkdir logs
[root@izbp1b498epn4trb75oykez mongoDB]# touch logs/mongoLogs.log
[root@izbp1b498epn4trb75oykez mongoDB]# touch mongodb.conf
  • Отредактируйте файл конфигурации mongodb.conf, команда выглядит следующим образом
[root@izbp1b498epn4trb75oykez mongoDB]# vi mongodb.conf 
  • После открытия файла нажмите клавишу i на клавиатуре, чтобы войти в состояние редактирования файла на английском языке, содержимое файла выглядит следующим образом.
#端口号 默认27017
port=27017

#数据目录
dbpath = /usr/local/mongoDB/data/db

#日志文件
logpath = /usr/local/mongoDB/logs/mongoLogs.log

#设置后台运行
fork = true

#日志输出方式
logappend = true
  • После редактирования нажмите ESC на клавиатуре, чтобы выйти из состояния редактирования, затем нажмите клавишу Shift+:, затем введите wq, нажмите Enter, чтобы сохранить и выйти
  • Запустите mongodb с файлом конфигурации, команда выглядит следующим образом
[root@izbp1b498epn4trb75oykez bin]# ./mongod --config /usr/local/mongoDB/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 6685
child process started successfully, parent exiting
./mongo连接测试库
[root@izbp1b498epn4trb75oykez bin]# ./mongo
  • Запуск выполнен успешно, ./mongo подключается к тестовой библиотеке, подключение успешное, введите exit для выхода

3. Настройте учетную запись и авторизуйте вход

  • Мы установили mongodb и успешно запустили и подключились к тестовой библиотеке, но в это время, когда мы запускаем ./mongo, нам не нужен авторизованный вход по умолчанию, что небезопасно, поэтому нам нужно создать администратора, и затем запустите и работайте. Для продолжения требуется авторизованный вход в систему.

  • Создайте базу данных администратора, создайте пользователей, установите учетные записи, пароли, разрешения

> use admin
switched to db admin
> db.createUser({user:"root",pwd:"123456",roles:["root"]})
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

Tip:Если вы следуете моим шагам и пароль также установлен по ошибке 123456, вот два способа изменить пароль:

  1. db.changeUserPassword("usertest","changepass") usertestПользователь,changepassновый пароль
  2. db.updateUser("usertest",{pwd:"changepass1"})
  • После входа в систему с паролем учетной записи завершите программу mongodb.
> use admin
switched to db admin
> db.auth('root','123456');
1
> db.shutdownServer();
Wed Nov 14 06:07:33 DBClientCursor::init call() failed
Wed Nov 14 06:07:33 query failed : admin.$cmd { shutdown: 1.0 } to: 127.0.0.1:27017
server should be down...
Wed Nov 14 06:07:33 trying reconnect to 127.0.0.1:27017
Wed Nov 14 06:07:33 reconnect 127.0.0.1:27017 failed couldnt connect to server 127.0.0.1:27017
  • Измените файл конфигурации и перезапустите, чтобы конфигурация вступила в силу.
[root@izbp1b498epn4trb75oykez mongoDB]# vi mongodb.conf

Содержимое файла конфигурации

#端口号 默认27017
port=27017
#绑定ip 默认127.0.0.1只允许本地连接
bind_ip = 0.0.0.0

#数据目录
dbpath = /usr/local/mongoDB/data/db

#日志文件
logpath = /usr/local/mongoDB/logs/mongoLogs.log

#设置后台运行
fork = true

#日志输出方式
logappend = true

#开启身份验证
auth = true

перезагружать

[root@izbp1b498epn4trb75oykez bin]# ./mongod --config /usr/local/mongoDB/mongodb.conf 
  • Войдите в систему как учетная запись администратора, создайте обычного пользователя, а затем настройте пароль учетной записи при подключении к базе данных для локальной разработки для успешного подключения.
1,以管理员账号连接数据库
[root@izbp1b498epn4trb75oykez bin]# ./mongo 127.0.0.1:27017/admin --username "root" --password "123456"
2,创建数据库,创建账号,给读写权限
> use blog
> db.createUser({user:"blogAdmin",pwd:"123456",roles:[{role:"readWrite",db:"blog"}]})
Successfully added user: {
	"user" : "blogAdmin",
	"roles" : [
    	{
	    	"role" : "readWrite",
	    	"db" : "blog"
    	}
	]
}

В-четвертых, открытые внешние порты, удаленное подключение

  • Если это хост Alibaba Cloud, вам необходимо открыть порт 27017 в консоли Alibaba Cloud, затем открыть соответствующий порт в командной строке сервера, а затем перезапустить брандмауэр, чтобы изменения вступили в силу.
1,查看防火墙状态
[root@izbp1b498epn4trb75oykez redis]# systemctl status firewalld
2,开启27017端口
[root@izbp1b498epn4trb75oykez redis]# firewall-cmd --zone=public --add-port=27017/tcp --permanent
success
3,重启防火墙
[root@izbp1b498epn4trb75oykez redis]# firewall-cmd --reload
4,查看端口号是否开放成功,输出yes开放成功,no则失败
[root@izbp1b498epn4trb75oykez redis]# firewall-cmd --zone=public --query-port=27017/tcp
  • Если это другой хост, вы можете обратиться кэта статья
  • После того, как порт успешно открыт, вы можете использовать Navicat для подключения к тестовому

  • Соединение установлено успешно, а дисплей пуст, потому что в базе данных нет содержимого.

  • Разработка, используемая в соединении, каждое средство подключения не обязательно является одинаковым языком в настоящем документе в качестве примера Nodejs
import mongoose from 'mongoose';
const db = mongoose.connect('mongodb://blogAdmin:123456@[你的IP]:27017/blog', { useNewUrlParser: true }, err => {
  if (err) {
    console.log('出错---------->', err)
  } else {
    console.log('链接成功')
  }
})

V. Описание прав и ролей пользователей

Чтение: позволяет пользователю читать указанную базу данных.

readWrite: позволяет пользователям читать и записывать в указанную базу данных

dbAdmin: позволяет пользователям выполнять административные функции в указанной базе данных, такие как создание индекса, удаление, просмотр статистики или доступ к system.profile.

userAdmin: позволяет пользователям записывать в коллекцию system.users, а также может создавать, удалять и управлять пользователями в указанной базе данных.

clusterAdmin: доступен только в базе данных администратора, предоставляет пользователю административные привилегии для всех функций, связанных с набором сегментов и реплик.

readAnyDatabase: доступно только в базе данных администратора, что дает пользователю разрешение на чтение для всех баз данных.

readWriteAnyDatabase: доступно только в базе данных администратора, что дает пользователю права на чтение и запись для всех баз данных.

userAdminAnyDatabase: доступен только в базе данных администратора, предоставляя пользователю права userAdmin для всех баз данных.

dbAdminAnyDatabase: доступен только в базе данных администратора, предоставляя пользователю привилегии dbAdmin для всех баз данных.

root: доступен только в базе данных администратора. Супер аккаунт, супер полномочия.

6. Завершение

  • На данный момент установка mongodb для Linux и удаленное подключение завершены.Если в процессе описания есть какая-либо неточность или неясное объяснение, оставьте сообщение в области комментариев.