mogodb安装yum和离线包

一 yum安装

1 yum源[根据版本设置源

cat << EOF > /etc/yum.repos.d/mongodb-org-4.2.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=http://www.mongodb.org/static/pgp/server-4.2.asc
EOF

2 安装

yum install -y mongodb-org
rpm -qa |grep mongodb

3 主要文件位置

#数据位置
/var/lib/mongo
#日志位置
/var/log/mongodb
#配置文件位置
/etc/mongod.conf

4 添加防火墙白名单

systemctl status firewalld
firewall-cmd --permanent --add-port=27017/tcp
firewall-cmd --reload 

5 开机自启动

systemctl enable mongod

6 启动

systemctl start mongod
systemctl status mongod
systemctl stop mongod
systemctl restart mongod

7 卸载MongoDB Community

1)停止mongod
2)删除依赖包
yum remove  $( rpm -qa | grep mongodb-org )
3)删除文件
rm -r /var/log/mongodb    # rm -r /var/lib/mongo

二 离线包安装

1 创建mongod用户组

cat /etc/passwd
groupadd -r mongod && useradd -r -g mongod -s /sbin/nologin -M mongod

2 下载安装包

yum install -y wget vim
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.0.tgz

官网地址
https://www.mongodb.com/try/download/community

3 解压和授权

tar -zxvf  mongodb-linux-x86_64-rhel70-4.4.0.tgz
mv mongodb-linux-x86_64-rhel70-4.4.0 /usr/local/mongodb
chown -R mongod.mongod /usr/local/mongodb

4 创建全局链接

ln -s /usr/local/mongodb/bin/mongo /usr/local/bin/mongo
ln -s /usr/local/mongodb/bin/mongod /usr/local/bin/mongod

5 数据和日志文件配置

#数据位置
mkdir -p /var/lib/mongo
chown -R mongod.mongod /var/lib/mongo
#日志位置
mkdir -p /var/log/mongodb
chown -R mongod.mongod  /var/log/mongodb
#配置文件位置
touch /etc/mongod.conf

6 创建mongod.conf配置

echo "systemLog:
  destination: file
  logAppend: true
  path: /var/lib/mongo/mongodb.log # 日志文件
storage:
  dbPath: /var/lib/mongo  # 数据目录
  journal:
    enabled: true
processManagement:
  fork: true  # fork and run in background
  timeZoneInfo: /usr/share/zoneinfo
net:
  port: 27017      # 端口
  bindIp: 0.0.0.0 # 绑定IP" >/etc/mongod.conf

7 创建mongodb服务

echo "[Unit]

Description=mongod 
After=network.target remote-fs.target nss-lookup.target

[Service]
User=mongod
Group=mongod
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /etc/mongod.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target" > /lib/systemd/system/mongod.service

8 开机启动

systemctl daemon-reload
systemctl enable mongod
systemctl start mongod
systemctl status mongod

9 故障1

Job for mongodb.service failed because the control process exited with error code. See "systemctl status mongodb.service" and "journalctl -xe" for details.
解决:没有log目录导致的,新建log文件目录,检查日志目录授权用户

故障2

mongod -f /www/server/mongodb/config.conf 启动后,ps -ef|grep mongo 发现是root用户启动的。

然后用kill -9 结束mongo程。

systemctl start mongod 重启出现以下错误:

Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe"

解决方法


chkconfig network off
chkconfig network on
service NetworkManager stop
service NetworkManager start

以下的分析过程,没有解决问题
1 查看日志
tail -100f  /var/log/mongodb/mongod.log
提示
[main] ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: Permission denied


2 查看数据目录和用户
 ll /var/lib/mongo
chown -R mongod.mongod /var/lib/mongo

3 删除mongod.lock
find / -name mongod.lock
rm -rf /var/lib/mongo/mongod.lock

 

10 yum安装默认的 /lib/systemd/system/mongod.service

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

三  mongodb使用

1 连接

mongo --port 27017
>use test
>db.key

2 用户管理

创建超级用户管理,管理所有库。(必须use admin,再创建)
$ mongo 27018
use admin
db.createUser(
{
 user:"root",
 pwd:"root123456",
 roles:[{role:"root",db:"admin"}]
}
)
 
验证用户
db.auth('root','root123456')
 
修改配置文件
security:
  authorization: enabled
  javascriptEnabled: false
 
重启mongodb
 
systemctl start mongod
或
mongod -f /www/server/mongodb/config.conf (以root用户启动,参考下文故障)
 
登录验证
mongo -uroot -proot123456 admin
mongo -uroot -proot123456 43.248.189.234/admin

3 使用

查看当前数据中有多少数据库
show dbs
切换数据库
use conf
写入
db.test_collection.insert({x:1})
查询表集合
show collections
查询
db.test_collection.find();
 
创建数据库()
use runoob
db
我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,需要向 runoob 数据库插入一些数据。
> db.runoob.insert({"name":"test"})
 
 
删除数据库
use runoob
db.dropDatabase()
 
 
删除集合
> use runoob
switched to db runoob
> db.createCollection("runoob")     # 先创建集合,类似数据库中的表
> show tables             # show collections 命令会更加准确点
runoob
> db.runoob.drop()
true
> show tables
 
 
参考
https://www.runoob.com/mongodb/mongodb-create-database.html

4 关闭mongo

先通过shell连上服务器:
mongo
use admin
db.shutdownServer()

或者直接kill -15 <pid>,注意kill -9 可能会导致数据文件损坏

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值