由于业务需要,需要安装MongoDB数据库,技术小小更新一波。
ubuntu版本: 22.04
MongoDB版本: 6.0
Mongodb Sheel版本: 2.1.1
安装步骤,先在Linux下安装下列依赖
sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.5-0 libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit snmp openssl liblzma5 |
我下载的是MongoDB官方6.0版本的tgz包,下载地址: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.12.tgz 所以需要先解压
tar -zxvf mongodb-linux-*-6.0.10.tgz |
下列官方原文:
To avoid having to specify the path to the MongoDB binaries, you can create symbolic links to the binaries from a directory listed in yourPATH
variable, such as/usr/local/bin
. Update/path/to/the/mongodb-directory/
with your installation directory as appropriat
意思就是查看/usr/local/bin是否在环境变量里,如果存在的话,将刚刚解压的MongoDB文件下BIN下的文件复制到 /usr/local/bin下。
# 注意: 复制该命令后需要将目录改成自己解压后的目录
sudo cp <mongodb-install-directory>/bin/* /usr/local/bin/ |
或者使用软链接将文件链接过去,这种情况不能删除安装包。
|
配置(以下复制自官网):
创建数据目录
sudo mkdir -p /var/lib/mongodb |
创建日志目录
sudo mkdir -p /var/log/mongodb |
# 如果使用普通用户,记得将上两个目录属主 属组修改,方法自行百度。
启动方式:
1. 命令行启动
mongod --dbpath /var/lib/mongod --logpath /var/log/mongodb/mongod.log --fork |
2. 通过配置文件启动
配置文件内容:
# 系统日志相关
systemLog:
destination: file # 使用文件存储日志
path: "/var/log/mongodb/mongodb.log" # 日志位置
logAppend: true # 是否以追加的形式记录日志
# 数据相关
storage:
journal: # 回滚日志
enabled: true
dbPath: "/var/lib/mongodb/" # 数据存储目录
# 进程相关
processManagement:
fork: true # 后台运行
# 网络配置相关
net:
port: 27017 # 默认端口
bindIp: 127.0.0.1 # 绑定ip, 多个ip以逗号分隔
# 如果需要开启远程连接,bindIp的值设置为 0.0.0.0
# 服务器防火墙端口开启
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
启动命令:
mongod --config /path/mongodb.conf
安装MongoDB Shell,方便连接客户端,下载地址: https://downloads.mongodb.com/compass/mongosh-2.1.1-linux-x64.tgz
在服务器上解压该文件
tar zxvf mongosh-2.1.1-linux-x64.tgz
解压完成后 mongosh-2.1.1-linux-x64/bin/下有两个文件
添加权限(注意文件路径):
chmod +x ./mongosh-2.1.1-linux-x64/bin/mongosh
添加到环境变量,同Server方法:
cp mongosh-2.1.1-linux-x64/bin/mongosh /usr/local/bin/
添加mongosh_crypt_v1.so
cp mongosh-2.1.1-linux-x64/bin/mongosh_crypt_v1.so /usr/local/lib/
连接测试:
mongosh --host 127.0.0.1 --port 27017
# 创建用户账号密码及普通管理员权限
普通操作角色 | read | 查询本库的权限。 |
readWrite | 增删改查本库的权限。 | |
管理员操作角色 | dbAdmin | 数据库对象的管理操作,但没有数据库的读写权限。 |
userAdmin | 在本库下创建用户的权限。 | |
dbOwner | 本库所有操作的权限。 | |
实例级别操作角色 | readAnyDatabase | 查询本实例所有库的权限。 |
readWriteAnyDatabase | 增删改查本例所有库的权限。 | |
userAdminAnyDatabase | 在本实例所有库下创建用户的权限。 | |
dbAdminAnyDatabase | 本实例所有库的dbAdmin权限。 | |
集群管理员角色 | hostManager | 数据库对象的管理操作,但没有数据库的读写权限。 |
clusterMonitor | 查询集群和复制集的权限。 | |
clusterManager | 管理和监控集群和复制集的权限。 | |
clusterAdmin | 集群所有操作的权限。 | |
备份与恢复操作角色 | backup | 查询本实例所有库的权限。 |
restore | 增删改查本例所有库的权限。 | |
超级角色 | Root | 超级用户权限。 |
db.createUser({user: "root", pwd: "123", roles: [{role: "dbAdmin", db: "test"}]})