大家好,前面跟大家分享了MongoDB数据库的先容以及基本利用,下面继承跟大家分享一下如何利用 Docker 安装 MongoDB 数据库,关于 MongoDB 数据库的先容和基础利用,大家可以参考:
MongoDB数据库基础指南
一、下载MongoDB镜像
等候镜像下载完成...
下载完成后,查看镜像。
二、创建外部挂载的目录
依次执行下面下令:
- # 创建一个名为/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。
执行完成后如下图:
查看容器运行状态:
此时,MongoDB数据库容器启动完成!
四、创建数据库用户
进入 mongo 容器内部:
- # 如果MongoDB6.0及以上使用
- docker exec -it mongo /bin/mongo
- # 如果是6.0以下的版本使用
- docker exec -it mongo /bin/mongo
复制代码
切换到 admin 库
执行数据库登录操作,否则后面执行下令会提示 MongoServerError[Unauthorized]: Command createUser requires authentication
- # 使用创建容器时的用户名和密码
- db.auth("admin","123456")
复制代码
登录乐成后,创建新用户 testuser
- db.createUser(
- {
- user:"testuser",
- pwd:"123456",
- roles:[{role:"root",db:"admin"}]
- }
- );
复制代码
创建完成后,尝试利用上面创建的新用户信息进行连接
- db.auth('testuser','123456')
复制代码
返回 { ok:1} 则分析连接乐成。
关于用户的常用下令:
1、更新用户脚色,修改用户权限,不会覆盖原权限信息,只新增权限
- db.updateUser("admin",{roles:[{role:"readWrite",db:"admin"}]})
复制代码 2、更新用户密码
- db.changeUserPassword("admin","123456")
复制代码 3、删除用户
4、查看所有用户
五、利用Navicat连接MongoDB
打开 Navicat 新建数据库连接,选择MongoDB
填写设置信息
填写完成设置信息后,点击左下角“测试连接”按钮
提示连接乐成,此时,在点击右下角“保存”按钮,即可保存连接设置,这样就可以通过Navicat去访问MongoDB数据库了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |