之前使用过的mongodb显然已经有些忘记了,使用公司环境搭建,发现在本地直接安装居然不会了,简单记录一下
版本:
Ubuntu: Ubuntu 22.04 LTS
lsb_release -a #在Ubuntu上边查询系统的版本命令
mongodb: 6.0.16
mongodb的下载地址为: Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/download/community 具体版本需要自己进行选择,我的如下所示:
安装:
常用的linux的存放位置:
/usr/local/mongodb
下载好安装包后上传到对应的目录中:
sudo rz
#回车后,选择自己下载的安装包即可
上传之后确认包已经在当前目录,然后进行解压:
sudo tar -zxvf mongodb-linux-x86_64-ubuntu2204-6.0.16.tgz
如下所示表示成功:
安装到这里基本上就可以使用了
附上mongodb的使用教程:
mongodb的简单配置:
基础路径的配置:
## 创建dbpath和logpath还有就是配置文件的路径
mkdir -p /etc/mongodb/data /etc/mongodb/log /etc/mongodb/conf
mongodb的启动:
bin/mongod --port=27017 --dbpath=/etc/mongodb/data --logpath=/etc/mongodb/log/mongodb.log --bind_ip=0.0.0.0 --fork
但是每次这样启动太麻烦了,另外还可以使用配置文件的方式,还需要配置linux的环境变量等一些列操作,这样后边集群也会很方便
/etc/mongodb/conf/mongodb.conf 中的内容:
systemLog:
destination: file
path: /etc/mongodb/log/mongodb.log # log path
logAppend: true
storage:
dbPath: /etc/mongodb/data # data path
engine: wiredTiger # 存储引擎
journal: # 是否启用journal日志
enabled: true
net:
bindIp: 0.0.0.0
port: 27017
processManagement:
fork: true
注意一定要是 yml 的格式!!
然后编辑配置文件:
vim /etc/profile
在文件的后边添加两行代码,指定mongodb的路径:
export MONGODB_HOME=/usr/local/mongodb/mongodb-linux-x86_64-ubuntu2204-6.0.16
export PATH=${MONGODB_HOME}/bin:${PATH}
然后进行刷新:
source /etc/profile
执行以下启动命令就可以了:
mongod -f mongodb.conf
结果如图所示:
关闭命令:
mongod --port=27017 --dbpath=/etc/mongodb/data --shutdown
在客户端连接mongodb的命令:
# 连接mongodb server端
mongosh --host=你的IP地址 --port=27017
# 或是
mongosh 你的IP地址:27017
# 亦或是指定uri方式连接
mongosh mongodb://你的IP地址:27017/test
设置密码:
db.createUser({user:"admin",pwd:"123456",roles:["root"]})
设置了密码收我们还要重新启动mongodb,因为默认是不会启用鉴权的
mongod -f mongodb.conf --auth
启动之后使用windows客户端的mongosh软件应用进行连接:
mongodb://用户名:密码@IP地址:27017/admin
其中真正的格式应该是:<connection-string>
是指向远程MongoDB服务器的连接字符串,它通常包含以下部分:
-
mongodb://
: 这是协议前缀,表明连接类型。 -
<username>:<password>@
: 可选的认证信息,如果服务器开启了用户认证。 -
<hostname>
: 远程服务器的地址或域名。 -
:<port>
: 可选的端口号,MongoDB默认端口是27017。 -
/<database-name>
: 要连接的数据库的名字。
例如,如果你的远程MongoDB服务器地址是example.com
,端口是27017
,数据库名是mydb
,用户名是user
,密码是pass
,你可以这样连接:
这个命令mongosh mongodb://user:pass@example.com:27017/mydb 在客户端使用时可以不带mongosh
复制集环境的搭建:
环境准备
- 安装 MongoDB并配置好环境变量
- 确保有 10GB 以上的硬盘空间
-
复制集的每个mongod进程应该位于不同的服务器。我们现在在一台机器上运行3个进程,因此要为它们各自配置:
- 不同的端口(27017/27018/27019)
- 不同的数据目录
- 每一个配置文件中都配有各自的数据等地址:主要添加一行
-
replication: replSetName: rs0
注意启动的时候将防火墙进行关闭,其他保持不变,
-
都启动后,进入到其中一个执行如下命令
rs.initiate({ _id: "rs0", members: [{ _id: 0, host: "IP地址:27017" },{ _id: 1, host: "IP地址:27018" },{ _id: 2, host: "IP地址:27019" }] })
完成以上就可以启动了
注意当再次启动的时候,如果还要权限验证可以使用以下方式:
keyFile文件的作用: 集群之间的安全认证,增加安全认证机制KeyFile(开启keyfile认证就默认开启了auth认证了)。
在对应的文件下生成一个文件
openssl rand -base64 756 > data/mongo.key
将这个文件chmod 600 mongo.key 设置权限
然后将这个文件复制到其他两个文件
启动时使用:
mongod -f mongodb.conf --keyFile ../data/mongo.key
这样就可以添加权限的启动了