hello,mongodb


Mongodb 安装:

一. debian安装:

  1. 导入apt包管理系统需要使用的公钥。
    在终端执行以下命令以从 https://www.mongodb.org/static/pgp/server-5.0.asc 导入 MongoDB GPG 公钥。
    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
    该操作应该会以OK响应。
    但是,如果你收到错误提示未安装gnupg的错误,则需要:
    安装gnupg及其所需的库:
    sudo apt-get install gnupg
    安装完成后,再次导入密钥
    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  2. 为 MongoDB 创建/etc/apt/sources.list.d/mongodb-org-5.0.list文件
    Debian 10:
    echo “deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main” | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  3. 更新apt源
    sudo apt-get update
  4. 安装 MongoDB 包
    sudo apt-get install -y mongodb-org
  5. 运行MongoDB
    默认情况下,MongoDB实例存储位置:
    其数据文件位于 /var/lib/mongodb
    其日志文件在 /var/log/mongodb
    如果通过程序包管理器安装,则这些默认目录是在安装过程中创建的。
    如果通过下载tarball手动安装,则可以使用mkdir -p或sudo mkdir -p来创建目录
    默认情况下,MongoDB使用mongodb用户帐户运行。如果更改运行MongoDB进程的用户,则还必须修改对/var/lib/mongodb和/var/log/mongodb 目录的权限,以使该用户可以访问这些目录。
    要指定其他日志文件目录和数据文件目录,请在/etc/mongod.conf中编辑systemLog.path和storage.dbPath。确保运行MongoDB的用户有权访问这些目录。
    启动流程:
    按照以下步骤在运行 MongoDB社区版。 此处假设你使用的是官方的mongodb-org包,而不是 Debian 提供的非官方的mongodb包,并且使用的是默认设置。
    初始化系统:
    要运行和管理mongod进程,需要使用操作系统的内置init系统。 最新版本的 Linux 倾向于使用systemd( systemctl命令 ),而旧版本的 Linux 倾向于使用System V init(service命令)。
    如果你不确定你的平台使用哪个初始化系统,请运行以下命令:
    ps –no-headers -o comm 1
    systemd(systemctl):
    .启动MongoDB
    sudo systemctl start mongod
    如果在启动 mongod 时出现类似以下的错误:
    Failed to start mongod.service: Unit mongod.service not found.
    首先运行以下命令:
    sudo systemctl daemon-reload
    然后再次运行上面的启动命令。
  6. 验证MongoDB是否已成功启动
    sudo systemctl status mongod
    可以选择通过以下命令来确保 MongoDB 将在系统重新启动后启动:
    sudo systemctl enable mongod
  7. 终止MongoDB
    sudo systemctl stop mongod
  8. 重启MongoDB
    sudo systemctl restart mongod
    可以通过查看/var/log/mongodb/mongod.log文件中的输出来跟踪错误或重要消息的进程状态。
  9. 开始使用MongoDB
    在与mongod相同的主机上启动mongosh会话。 在没有命令行选项时运行mongosh,会连接到localhost:27017上的mongod实例。
    mongosh
    有关使用 mongosh 进行连接的更多信息,例如连接到在不同主机和(或)端口上运行的 mongod 实例,请参阅mongosh文档。

二. Red Hat/CentOS:

sudo yum install libcurl openssl

Ubuntu 18.04 LTS (“Bionic”)/Debian 10 “Buster”:

sudo apt-get install libcurl4 openssl

Ubuntu 16.04 LTS (“Xenial”)/Debian 9 “Stretch”:

sudo apt-get install libcurl3 openssl

MongoDB 源码下载地址:https://www.mongodb.com/try/download/community

Server 是下载了rpm包直接 yum localinstall 安装;以后自动生成mongodbservice

/usr/lib/systemd/system/mongod.service

-rw-r–r– 1 root root 811 Nov 16 07:05 /usr/lib/systemd/system/mongod.service

我们下载了tgz包,Copy link 复制下载包url

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.4.tgz

tar xvf mongodb-linux-x86_64-rhel70-7.0.4.tgz

mv f mongodb-linux-x86_64-rhel70-7.0.4 mongodb && mv mongodb /usr/local/

vi /etc/profile

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

source /etc/profile

在需要的数据盘下面建文件夹,

Cd /data && mkdir -p mongo log

Touch log/mongodb.log

vi mongodb.conf

dbpath = /usr/local/mongodb/data  \# mongodb数据文件存储路径(指定数据库目录)
logpath = /usr/local/mongodb/logs/mongodb.log  \# mongodb的日志路径(指定日志文件目录)
logappend = true  \# 日志使用追加代替覆盖
port = 27017  \# 端口
fork = true  \# 以守护程序的方式启用,即在后台运行
auth = false \# 认证模式,需要设置账号和密码(下一步设置)
bind_ip = 127.0.0.1 \# 远程连接

启动:mongod -f mongodb.conf

mongod -f mongodb.conf

about to fork child process, waiting until server is ready for connections.

forked process: 26741

child process started successfully, parent exiting

添加系统服务:

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /data/mongo/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shundown --config /data/mongo/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
PrivateTmp=true
LimitNOFILE=64000
LimitNPROC=64000

[Install]
WantedBy=multi-user.target

systemctl daemon-reload && systemctl start mongod

进入mongodb时候报错了,mongo:command not found;

/usr/local/mongodb/bin下面没有mongo;

https://www.mongodb.com/try/download/shell

需要到官网下一个mongosh,

wget https://downloads.mongodb.com/compass/mongodb-mongosh-2.1.1.x86_64.rpm

yum localinstall mongodb-mongosh-2.1.1.x86_64.rpm

三. 使用Mongodb

进入以后设置管理员账号,

test> use admin

switched to db admin

admin> db.createUser({user:”root”,pwd:”admin123”,roles:[{role:”root”,db:”admin”}]})

{ ok: 1 }

修改mongodb.conf auth = true 开启授权模式;

普通用户授权:

jary_test> db.createUser({user:"jary",pwd:"abc123",roles:[{role:"readWrite",db:"jary_test"}]})

{ ok: 1 }

jary_test> show users

[

 {

  _id: 'jary_test.jary',

  userId: UUID('64e3c53b-652e-424c-abe7-1c981d603287'),

  user: 'jary',

  db: 'jary_test',

  roles: [ { role: 'readWrite', db: 'jary_test' } ],

  mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]

 }

]

查看用户:

#切换到admin数据库

use admin

#查看所有用户

db.system.users.find()

#删除用户

db.system.users.deleteOne({user:”jary2”})

admin> db.system.users.deleteOne({user:”jary2”})

{ acknowledged: true, deletedCount: 1 }

建立数据库:

admin> use jary_test

switched to db jary_test

jary_test> db

jary_test

插入数据:

jary_test> db.jary_test.insertOne({“name”:”zhr”,”age”:”31”,”online”:”true”})

{

acknowledged: true,

insertedId: ObjectId(‘657ab816940239e3d1eaeb07’)

}

jary_test> show dbs

admin 148.00 KiB

config 60.00 KiB

jary_test 8.00 KiB

local 72.00 KiB

use jary_test2

switched to db jary_test2

jary_test2> show dbs

admin 180.00 KiB

config 108.00 KiB

jary_test 40.00 KiB

local 72.00 KiB

刚创建的库不在数据库列表里面,需要插入数据。

jary_test2> db.jary_test2.insertOne({“name”:”zruo”,”score”:”98”})

{

acknowledged: true,

insertedId: ObjectId(‘657abb6c940239e3d1eaeb08’)

}

jary_test2> show dbs

admin 180.00 KiB

config 108.00 KiB

jary_test 40.00 KiB

jary_test2 40.00 KiB

local 72.00 KiB

删除数据库:

jary_test2> use jary_test2

already on db jary_test2

jary_test2> db.dropDatabase()

{ ok: 1, dropped: ‘jary_test2’ }

jary_test2> show dbs

admin 180.00 KiB

config 108.00 KiB

jary_test 40.00 KiB

local 72.00 KiB


文章作者: 云上的小雨滴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 云上的小雨滴 !
评论
  目录