用户云卷云舒 发表于 2024-7-16 14:44:48

利用Docker安装MongoDB数据库

https://img-blog.csdnimg.cn/direct/25df6da1b36b459fba16bc419fd8d2f2.png
        大家好,前面跟大家分享了MongoDB数据库的先容以及基本利用,下面继承跟大家分享一下如何利用 Docker 安装 MongoDB 数据库,关于 MongoDB 数据库的先容和基础利用,大家可以参考:
MongoDB数据库基础指南

一、下载MongoDB镜像

docker pull mongo:latest 等候镜像下载完成...
https://img-blog.csdnimg.cn/direct/4a93b1f9221f4605b122203f573fedba.png
下载完成后,查看镜像。
https://img-blog.csdnimg.cn/direct/581c4f8cc98f42d891fe9b3007a0dce0.png

二、创建外部挂载的目录

依次执行下面下令:
# 创建一个名为/data/mongo/config的目录。-p选项表示如果父目录不存在,则同时创建父目录。
mkdir -p /data/mongo/config
# 创建了一个名为/data/mongo/data的目录,用于存储 MongoDB 的数据。
mkdir -p /data/mongo/data
# 创建了一个名为/data/mongo/logs的目录,用于存储 MongoDB 的日志文件。
mkdir -p /data/mongo/logs
# 创建了一个空文件/data/mongo/config/mongod.conf。这个文件是 MongoDB 的配置文件。
touch /data/mongo/config/mongod.conf
# 将/data/mongo目录的权限设置为 777,这意味着任何人都可以对该目录进行读、写和执行操作。
chmod 777 /data/mongo 利用 vi 或 vim 编辑器打开mongod.conf文件
vim /data/mongo/config/mongod.conf 在文件中添加以下内容(可以根据本身的需求进行调整):
# 数据库存储路径
dbpath=/data/mongo/data

# 日志文件路径
logpath=/data/mongo/logs/mongod.log

# 监听的端口
port=27017

# 允许所有的 IP 地址连接
bind_ip=0.0.0.0

# 启用日志记录
journal=true

# 是否后台运行
fork=true

# 启用身份验证
#auth=true 三、启动MongoDB容器

docker run -dit --name mongo \
-p 17017:27017 \
-v /data/mongo/config/mongod.conf:/etc/mongod.conf \
-v /data/mongo/data:/data/db \
-v /data/mongo/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--restart=always\
mongo 下令解释:


[*]docker run:运行 Docker 容器的下令。
[*]-dit:以守护进程模式运行容器,并在容器内分配一个伪终端。
[*]--name mongo:为容器指定一个名称。
[*]-p 17017:27017:将容器的 27017 端口映射到主机的 17017 端口,允许外部访问 MongoDB 数据库。
[*]-v /data/mongo/config/mongod.conf:/etc/mongod.conf:将主机上的/data/mongo/config/mongod.conf文件挂载到容器的/etc/mongod.conf位置,作为 MongoDB 的设置文件。
[*]-v /data/mongo/data:/data/db:将主机上的/data/mongo/data目录挂载到容器的/data/db位置,作为 MongoDB 的数据存储目录。
[*]-v /data/mongo/logs:/var/log/mongodb:将主机上的/data/mongo/logs目录挂载到容器的/var/log/mongodb位置,作为 MongoDB 的日志存储目录。
[*]-e MONGO_INITDB_ROOT_USERNAME=admin:设置 MongoDB 初始化时的 root 用户名为admin。
[*]-e MONGO_INITDB_ROOT_PASSWORD=123456:设置 MongoDB 初始化时的 root 密码为123456。
[*]--restart=always:容器在退出后总是自动重启。
[*]mongo:指定要运行的 Docker 镜像为 MongoDB。
执行完成后如下图:
https://img-blog.csdnimg.cn/direct/1da833e301c44415a56cf31ce51f0cc9.png
查看容器运行状态:
https://img-blog.csdnimg.cn/direct/df76d6481dab4cafa940854a9f40e66d.png
此时,MongoDB数据库容器启动完成!

四、创建数据库用户

进入 mongo 容器内部:
# 如果MongoDB6.0及以上使用
docker exec -it mongo /bin/mongo

# 如果是6.0以下的版本使用
docker exec -it mongo /bin/mongo

https://img-blog.csdnimg.cn/direct/a42dcb2b91e7455fb13715f42b60c6fd.png
切换到 admin 库
use admin https://img-blog.csdnimg.cn/direct/6cead9ad9f0047b8b4e22d7a2efccadd.png
执行数据库登录操作,否则后面执行下令会提示 MongoServerError: Command createUser requires authentication
# 使用创建容器时的用户名和密码
db.auth("admin","123456") https://img-blog.csdnimg.cn/direct/badc93794aa14fd888d511d6f93d6c85.png
登录乐成后,创建新用户 testuser
db.createUser(
        {
                user:"testuser",
                pwd:"123456",
                roles:[{role:"root",db:"admin"}]
        }
); https://img-blog.csdnimg.cn/direct/23055a7911f5445dbf073dadd4f7dafc.png
创建完成后,尝试利用上面创建的新用户信息进行连接
db.auth('testuser','123456') https://img-blog.csdnimg.cn/direct/0cc37e16360a43df8cc307be1bf740a5.png
返回 { ok:1} 则分析连接乐成。

关于用户的常用下令:

1、更新用户脚色,修改用户权限,不会覆盖原权限信息,只新增权限
db.updateUser("admin",{roles:[{role:"readWrite",db:"admin"}]}) 2、更新用户密码
db.changeUserPassword("admin","123456")
3、删除用户
db.dropUser({'admin'})
4、查看所有用户
show users

五、利用Navicat连接MongoDB

打开 Navicat 新建数据库连接,选择MongoDB
https://img-blog.csdnimg.cn/direct/badcdd165aa64e37b93cd1a3e202a222.png
填写设置信息
https://img-blog.csdnimg.cn/direct/869f89d1896a4492b90b4e8fc253205a.png
填写完成设置信息后,点击左下角“测试连接”按钮
https://img-blog.csdnimg.cn/direct/f953ed302f004238ae5dc9b1125f887c.png
提示连接乐成,此时,在点击右下角“保存”按钮,即可保存连接设置,这样就可以通过Navicat去访问MongoDB数据库了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 利用Docker安装MongoDB数据库