MongoDB安装
1.安装相关依赖
centos依赖
sudo yum install libcurl opensslubuntu依赖
sudo apt-get install libcurl4 openssl liblzma52.下载二进制压缩包,并解压
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.11.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-7.0.11.tgz
mv mongodb-linux-x86_64-rhel70-7.0.11/* /usr/local/mongodb
3.确保二进制文件位于 PATH 环境变量中列出的目录下
MongoDB 二进制文件位于mongodb-directory的 bin/ 目录中。您可以
执行以下任一操作:
将二进制文件复制到 PATH 变量中列出的目录中,例如 /usr/local/bin(根据需要使用您的安装目录来更新 /path/mongodb-directory/)
sudo cp /path/mongodb-directory/bin/* /usr/local/bin/创建指向 PATH 变量中所列目录的二进制文件的符号链接,例如 /usr/local/bin(根据需要使用您的安装目录更新 /path/mongodb-directory/)
sudo ln -s /path/mongodb-directory/bin/* /usr/local/bin/直接配置系统环境
vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH保存系统配置
source /etc/profile
4.创建数据库目录
默认情况下 MongoDB 启动后会初始化以下两个目录:
数据存储目录:/var/lib/mongodb日志文件目录:/var/log/mongodb
我们在启动前可以先创建这两个目录并设置当前用户有读写权限:
sudo mkdir -p /var/lib/mongodata
sudo mkdir -p /var/log/mongodblog
默认情况下,MongoDB 使用 mongod 用户帐户运行。创建一个 mongod 和一个 mongodb 群组。确保 mongod 属于该群组,然后将这些目录的所有者和群组设为 mongod:
adduser -s /sbin/nologin mongod #创建禁止登陆的用户
sudo chown -R mongod:mongod /var/lib/mongodata #设置权限
sudo chown -R mongod:mongod /var/log/mongodblog #设置权限
5.MongoDB 配置文件
vim /usr/local/mongdb/mongod.conf
#详细记录输出
verbose=true
#绑定IP
bind_ip=0.0.0.0
#指定服务端口号
port=27017
#指定日志文件,注意是指定文件不是目录
logpath=/var/log/mongodb/logs/mongodb.log
#使用追加方式写日志
logappend=true
#指定数据库路径
dbpath=/var/lib/mongodb/db
#设置每个数据库将被保存在一个单独的目录
directoryperdb=true
#启用验证(设置账号密码之后,这里要修改为true)
auth=false
#以守护进程的方式运行MongoDB,创建服务器进程
fork=true
#安静退出
quiet=true
#最大使用内存(不加这个,mongodb会默认最多占一半内存)
wiredTigerCacheSizeGB=0.8配置参数详细说明
bind_ip:指定MongoDB监听的IP地址。默认为127.0.0.1,表示只监听本地回环地址。如果你希望MongoDB能够通过网络访问,可以将该选项设置为0.0.0.0,表示监听所有可用的IP地址。
port:指定MongoDB监听的端口号。默认为27017,通常不需要修改。
dbpath:指定MongoDB数据文件存储的路径。默认为/var/lib/mongodb。
logpath:指定MongoDB日志文件的路径。默认为/var/log/mongodb/mongod.log。
logappend:指定是否在日志文件末尾追加日志。默认为false,表示每次启动MongoDB时,会清空日志文件。
journal.enabled:指定是否启用Journaling,用于数据持久性和恢复。默认为true,建议保持默认值。
storage.wiredTiger.engineConfig.cacheSizeGB:指定WiredTiger存储引擎的缓存大小,单位为GB。默认为总系统内存的一半,建议根据实际情况调整。
security.authorization:指定是否启用身份验证。默认为disabled,表示不启用身份验证。在生产环境中,建议将该选项设置为enabled,并配置合适的用户和角色权限。
replication.replSetName:指定复制集的名称。默认为空,表示不启用复制集。如果需要使用复制集功能,可以将该选项设置为一个非空的名称。
net.maxIncomingConnections:指定MongoDB最大允许的入站连接数。默认为65536,根据实际情况进行调整。
processManagement.fork:指定是否在后台运行MongoDB进程。默认为true,表示在后台运行。如果需要在前台运行,可以将该选项设置为false。
测试是否安装成功,输出如下日志算成功
mongod -f /etc/mongod.conf/usr/local/mongdb/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 18885
添加mongodb.service,并设置开机自启
vim /etc/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongdb/bin/mongod --config /usr/local/mongdb/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongdb/mongod.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target设置权限
sudo chmod +x /etc/systemd/system/mongodb.service6.启动 Mongodb 服务:
systemctl start mongodb #启动服务
systemctl enable mongodb #设置开机启动
systemctl disable mongodb #关闭开机启动查看服务状态
systemctl start mongodb[root@localhost bin]# systemctl status mongodb
● mongodb.service - mongodb
Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset: disabled)
Active: active (running) since 五 2024-06-07 20:17:34 CST; 4min 56s ago
Process: 5926 ExecStart=/usr/local/mongdb/bin/mongod --config /usr/local/mongdb/mongod.conf (code=exited, status=0/SUCCESS)
Main PID: 5928 (mongod)
CGroup: /system.slice/mongodb.service
└─5928 /usr/local/mongdb/bin/mongod --config /usr/local/mongdb/mongod.conf
6月 07 20:17:32 localhost.localdomain systemd[1]: Starting mongodb...
6月 07 20:17:32 localhost.localdomain mongod[5926]: about to fork child process, waiting until server is ready for connections.
6月 07 20:17:32 localhost.localdomain mongod[5926]: forked process: 5928
6月 07 20:17:34 localhost.localdomain mongod[5926]: child process started successfully, parent exiting
6月 07 20:17:34 localhost.localdomain systemd[1]: Started mongodb.安装客户端
6.0版本后不带mongo工具,需自己安装去官网mongodbsh
设置登录用户
> use admin
#创建管理用户,root权限
db.createUser( { user: "root", pwd: "123456", roles: [ { role: "root", db: "admin" } ] } )
#验证
db.auth("root", "123456")
#返回1则成功!
验证通过之后,将 mongod.conf里面的
auth=false 修改成
auth=true