LinuxにMongoDB4.xをオフラインでインストールする

LinuxにMongoDB4.4.4をオフラインでインストールする

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プロセスが開始されているかどうかを確認することもできます。2つの表示が開始です。

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)認証情報を格納するキーファイルファイルを生成します

同時に、認証認証とレプリカセットにはキーファイルファイルが必要です。設定されていない場合、起動時にエラーが報告されます。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でレプリカセットを有効にするために1つのノードのみを使用します

構成ファイルを変更して、レプリカセット情報とキーファイルの場所情報を追加します

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.視覚化ツール

ツールダウンロードするには、MongoDBのNoSQLBoosterをクリックしてください。このツールの一部の機能は30日間無料です。

接続方法:

このツールを使用してMongoDBに接続する場合

MongoDB設定がパスワード認証を必要としない場合は、直接接続->作成->基本->サーバーにIPとポートを入力->接続のテストをクリック->緑色のOKが表示された場合は成功し、赤色のフォントエラーを報告して失敗します失敗の理由は可能です。IPまたはポートにエラーがあります)->接続が成功したら、[保存して接続]-> [完了]をクリックします。

MongoDB設定でパスワード認証が必要な場合、つまり構成ファイルが設定されているauth = true場合は、[接続]-> [作成]-> [基本]-> [サーバー]にIPとポートを入力し、[認証]-> [モード]をクリックして[基本(ユーザー名/パスワード)]を選択します。 、Auth DBはデータベース名を追加し、ユーザー名はアカウント名を追加し、パスワードはパスワードを入力します-> [接続のテスト]をクリックします->緑色の[OK]が表示された場合は成功し、赤色のフォントはエラーを報告し、その後失敗します- >接続が成功したら、[保存して接続]-> [完了]をクリックします

失敗理由は、IPポートのエラー、またはデータベースアカウントのパスワードのエラーである可能性があります。すべてのチェックが正しいのに接続できない場合は、構成ファイルauth = true構成されているかどうかを確認してから、シャットダウンする必要があります。開始後、黒いウィンドウのパスワードでアカウントを渡してmongoクライアントに接続し、アカウントパスワードを再作成し、新しく作成したアカウントパスワードを使用してツールに接続します)

Alibaba Cloudサーバーに接続できない場合は、CloudShieldによってブロックされている可能性があります。ホワイトリストを構成します。ここをクリックしてください。

または、電話のホットスポットを変更して試してください

おすすめ

転載: blog.csdn.net/qq_43853055/article/details/114379405