Установите MongoDB 4.x в автономном режиме в Linux

Установите MongoDB 4.4.4 в автономном режиме в Linux

0. Предисловие

Версия: Centos7 + MongoDB 4.4.4

Официальный сайт: https://www.mongodb.com/

Конфигурация установки в этой статье单个机器单个实例

Если вы устанавливаете 单个机器多个实例или 多台机器集群, эта статья предназначена только для справки.

1. Скачать

Щелкните здесь, чтобы загрузить настроенную версию, или щелкните здесь, чтобы загрузить

version:4.4.4

Platform:RedHat / CentOS 7.0

Package:tgz

2. Установка и настройка

Загрузить в linux

После распаковки переместите место хранения файла и переименуйте его.

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz

mv mongodb-linux-x86_64-rhel70-4.4.4 /usr/local/mongodb

Добавить файл конфигурации

cd /usr/local/mongodb/

vi mongodb.conf

Ниже приводится содержимое файла конфигурации mongodb.conf.

#数据文件存放目录
dbpath = /usr/local/mongodb/data/db
#日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log
#默认端口27017
port = 27017
#以守护程序的方式启用,即在后台运行
fork = true
#允许远程连接,127.0.0.1只允许本地连接
bind_ip=0.0.0.0
#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问
#auth = true

Затем создайте каталог файлов данных и файл журнала, настроенный в файле конфигурации mongodb.conf.

mkdir -p /usr/local/mongodb/data/db
mkdir -p /usr/local/mongodb/logs
touch /usr/local/mongodb/logs/mongodb.log

3. Настройте переменные среды.

vi /etc/profile 

Затем добавьте следующие

export PATH=$PATH:/usr/local/mongodb/bin

Немедленно внесите изменения, которые вы только что внесли, в силу

source /etc/profile

4. Запустите сервис mongo.

mongod -f /usr/local/mongodb/mongodb.conf

Успешный стартап выглядит следующим образом

[root@iZbp185opgs9ov4aretwdxZ ~]# mongod -f /usr/local/mongodb/mongodb.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 11622
child process started successfully, parent exiting

5. Подключитесь к клиенту mongo.

#未开启认证
mongo
#开启认证使用账号密码连接
mongo -u admin -p admin

Подключение выполнено успешно следующим образом

[root@iZbp185opgs9ov4aretwdxZ ~]# mongo
MongoDB shell version v4.4.4
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session {
    
     "id" : UUID("14909903-578d-4023-83cd-dec9703c904e") }
MongoDB server version: 4.4.4
---
The server generated these startup warnings when booting: 
        2021-03-04T15:00:41.842+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2021-03-04T15:00:42.732+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
        2021-03-04T15:00:42.732+08:00: You are running this process as the root user, which is not recommended
        2021-03-04T15:00:42.732+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
        2021-03-04T15:00:42.732+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> 

Вы также можете ps -ef | grep mongoпроверить, запущен ли процесс, отображение двух - это начало

6. Выключите сервис mongo.

mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --shutdown

или же

rs:PRIMARY> use admin
rs:PRIMARY> db.shutdownServer()
#退出后即关闭

7. Создайте пользователя [рекомендация]

# 切换到admin数据库
use admin
# 使用db.createUser() 创建一个管理员用户admin,角色为root,指定具体数据库
db.createUser({
    
    user:'admin',pwd:'admin',roles:[{
    
    role:'root',db:'admin'}]})
# db.auth()认证一下获取权限,认证通过后可以操作数据库,成功则会输出1
db.auth("admin","admin")


# use 命令也可以是创建数据库,当指定数据库不存在时即为创建,切换到一个新的数据库xtest
use xtest
# 创建用户xtest dbOwner权限
db.createUser({
    
    user:'xtest',pwd:'xtest',roles:['dbOwner']})

# 查看有哪儿些用户
show users
# 删除用户
db.dropUser("user_name")

Один должен быть создан.После 管理员账号создания учетной записи вам необходимо mongodb.confвключить аутентификацию аутентификации в файле конфигурации , а затем перезапустить mongoслужбу.

После перезапуска вам необходимо войти в клиент, используя только что созданную учетную запись администратора и пароль, в противном случае show dbsкоманда не сможет просмотреть никакую базу данных, потому что у вас нет разрешения.

Формат клиентского подключения:mongo -u 账号 --authenticationDatabase 数据库名 -p 密码

--authenticationDatabase 数据库名 По желанию

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

роль:

read    	允许用户读取指定数据库
readWrite    	允许用户读写指定数据库
dbAdmin    	允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
dbOwner		数据库拥有者,包含readWrite、dbAdmin、userAdmin
userAdmin    	允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin    	只能切换在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root    	只能切换在admin数据库中可用。超级账号,超级权限

8. Добавьте набор реплик и файл ключевого файла [необязательно]

(1) Создайте файл ключевого файла, в котором хранится информация аутентификации.

В то же время для аутентификации auth и набора реплик требуется файл ключевого файла. Если он не настроен, при запуске будет выдана ошибка:BadValue: security.keyFile is required when authorization is enabled with replica sets

cd /usr/local/mongodb/data/db
openssl rand -base64 741 > mongodb.key
#修改权限,不修改之后启动时会报错
chmod 400 mongodb.key

(2) MongoDB использует только один узел для включения набора реплик в MongoDB.

Измените файл конфигурации, чтобы добавить информацию о наборе реплик и информацию о местоположении ключевого файла.

cd /usr/local/mongodb/

vi mongodb.conf

Ниже приводится содержимое файла конфигурации mongodb.conf.

#数据文件存放目录
dbpath = /usr/local/mongodb/data/db
#日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log
#默认端口27017
port = 27017
#以守护程序的方式启用,即在后台运行
fork = true
#允许远程连接,127.0.0.1只允许本地连接
bind_ip=0.0.0.0
#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问
auth = true
#副本集名称
replSet=rs
#存储身份信息的秘钥文件
keyFile=/usr/local/mongodb/data/db/mongodb.key

(3) Перезапустите службу mongo

mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --shutdown

mongod -f /usr/local/mongodb/mongodb.conf

(4) Используйте следующую команду для инициализации набора реплик rs.initiate ()

Войдите в оболочку MongoDB и выполните командуrs.initiate()

> rs.initiate()
{
    
    
	"info2" : "no configuration specified. Using a default configuration for the set",
	"me" : "iZbp185opgs9ov4aretwdxZ:27017",
	"ok" : 1,
	"$clusterTime" : {
    
    
		"clusterTime" : Timestamp(1615022835, 1),
		"signature" : {
    
    
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	},
	"operationTime" : Timestamp(1615022835, 1)
}
rs:SECONDARY> 

Просмотр информации о наборе реплик

rs.status()

Пока завершено.

9. Инструменты визуализации

Нажмите NoSQLBooster для MongoDB, чтобы загрузить инструмент. Некоторые функции этого инструмента бесплатны в течение 30 дней.

Как подключиться:

При использовании этого инструмента для подключения к MongoDB

Если настройка MongoDB не требует аутентификации по паролю, просто напрямую Connections-> Create-> Basic-> Введите IP-адрес и порт на сервере-> Нажмите Test Connecting-> Если появится зеленый ок, это будет успешно, а красный шрифт сообщит об ошибке и завершится ошибкой (возможна причина сбоя. Ошибка в ip или порте ) -> После успешного подключения нажмите Сохранить и подключить -> Готово

Если параметр MongoDB требует аутентификации по паролю, то есть установлен файл конфигурации auth = true, то Connections-> Create-> Basic-> Введите IP-адрес и порт в Server-> Нажмите Authentication-> Mode, чтобы выбрать Basic (имя пользователя / пароль). , Auth DB добавляет имя базы данных, Имя пользователя добавляет имя учетной записи, Пароль, введите пароль -> нажмите Test Connecting -> если появится зеленый ок, это будет успешно, а красный шрифт сообщит об ошибке, тогда он не удастся - > после успешного подключения нажмите «Сохранить и подключить» -> «Готово».

( Причиной сбоя может быть ошибка в IP-порту или ошибка в пароле учетной записи базы данных. Если вы по-прежнему не можете подключиться после того, как все проверки верны, вы должны проверить, настроено ли это в файле конфигурации auth = true, а затем закрыть вниз службу mongo и перезапустите ее.После запуска передайте учетную запись в черном окне Пароль для подключения к клиенту mongo, повторно создайте пароль учетной записи и используйте вновь созданный пароль учетной записи для подключения в инструменте)

Если сервер Alibaba Cloud не может быть подключен, он может быть заблокирован Cloud Shield. Настройте белый список: нажмите здесь

Или измените точку доступа телефона, чтобы попробовать

рекомендация

отblog.csdn.net/qq_43853055/article/details/114379405