MongoDB在linux安装记录

903 阅读4分钟

下载安装包&解压

  • 直接使用 命令 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.8.tgz

    注意:要对照自己的 服务器版本 选择最接近的 此处我的是 centOS 7.0 的班版本 TODO:如何查看版本号

  • 直接下载下来 下载到本地,在通过 FileZilla 工具将本地文件 传送到 服务器

  • 解压tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz (当然如果从本地传上来的就是解压后的就不需要解压)

下载总结

  • 我自己安装的过程中,直接下载 包,比 在服务器 wget下载快
  • 如果是在服务器 解压的话,我解压完 mongoDB/bin 目录下有时候会少很多启动文件,解决办法就是 多试几遍,针对没有上传的文件 单独 从本地上传

移动文件

一般都会将文件移动到自己规定的目录

# file2 事先要存在
mv file1  file2   #将file1 移动到 file2
mv file1/* file2  # 将 file1 下面的所有文件 全部移动到 file2 文件夹下面
# 我一般会留一份在安装包在服务器,所以用 cp (前期可能安装的不好,需要重新安装)
cp file1/* file2  # 将file1 下面的所有 文件复制到 file2 中

#下面是我的操作
cp mongdbxxx.4.2.8/* /usr/local/mongodb/

创建 log文件与db存放文件

默认MonoDB 是不会自己创建 数据存放的目录 和 log 日志的目录,需要用户自己手动指定

先自己手动创建文件夹,然后通过配置文件启动就可以指定

mkdir /usr/local/mongodb/data  #创建数据存放路径
mkdir /usr/local/mongodb/log   #创建log的存放路径

创建启动配置文件

  • 创建文件 mkdir /usr/mongo/mongo.conf
  • 写文件 vim /usr/mongo/mongo.conf
    dbpath=/usr/local/mongodb/data  #指定数据存放目录
    logpath=/usr/local/mongodb/logs/mongo.log #指定log存放目录
    logappend=true # ?
    journal=true  # ?
    quiet=true   # ?
    port=27017  # 端口
    fork=true #后台运行,也就是线程永驻
    bind_ip=0.0.0.0 #允许任何 IP 进行连接,也就是 对外科访问
    

启动服务器

  • 启动命令 /usr/local/mongodb/mongodb-linux-x86_64-rhel70-4.2.8/bin/mongod --config /usr/local/mongodb/mongo.conf

  • 启动之后 通过 ip:27017(ip为服务器公网地址) 访问,可以看到如下

启动客户端,创建庄户

  • 启动

    /usr/local/mongodb/bin/mongo  
    
  • 进入 shell,创建 账户

    use admin
      db.createUser(
           {
             user:"root",
             pwd:"root",
             roles:[{role:"root",db:"admin"}]
           }
        )
    # 查看账户
    show users或db.system.users.find()
    # 如何退出 shell 
    exit 回车
    # 开启权限
    auth=true  启动文件加上,再次启动就是 需要登录才行
    
  • 关闭mongoDB

    使用db.shutdownServer()退出

    注意:如果配置文件内设置了 auth=true,那么再关闭的时候需要 先验证 权限才行

    use admin
    db.auth('root','root')
    db.shutdownServer()
    

    千万注意:使用 kill 直接杀死 会造成很大的问题

    更改过conf文件之后再次启动 如图

    # 启动服务端
    /usr/local/mongodb/mongodb-linux-x86_64-rhel70-4.2.8/bin/mongod --config /usr/local/mongodb/mongo.conf 
    #启动客户端
    /usr/local/mongodb/mongodb-linux-x86_64-rhel70-4.2.8/bin/mongo
    

    TODO 有问题,应该要权限才对

如果不小心 使用 kill 来杀死进程,会造成错误,客户端连接不上,服务端有启动不了

操作如下

0、ps -ef|grep mongod # 查看mongoDb 的进程id
1、sudo kill -9 4018   杀掉子进程
2、进入mongodb安装目录,删除data目录下的mongod.lock文件
3、 bin目录下:./mongod  --repair
、再次重启 :sudo /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf
# 需要特别注意中间有任何报错,记得多看几遍 提示
我之前遇到的提示:提示 没有/data/db 文件夹,但是我也不知道干嘛用的,所有我就手动新建了一个 /data/db
**这一步坑了我好久**

记录一些linux 基础命令

# 阿里云 

#检查服务器对外是否是通的
telnet 192.168.157.129 80 
#注意:
很多时候 telnet 完就无法退出了,ctrl+c 有时也无法退出;
这个时候先执行:ctrl+] 然后在telnet 命令行输入 quit 就可以退出了


# 查看服务器状态(排查外部无法访问服务器)
# 之前部署了一个 web 静态页面,死活访问不到,故记录如下 排查方法
systemctl status firewalld
#running  开启
#firewalld 关闭

#对外开启某个端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
# success  
# FirewallD is not running (说明防火墙还没有是关闭状态)

# nginx 错误排查

# 检查ng语法对不对
nginx -t   

# 查看进程 && 强制杀死进程
# 查看 nginx 的进程
ps -ef|grep nginx
# 杀死 进程
kill -QUIT 2072
# 简单粗暴杀死
pkill -9 nginx

#查看具体某个端口的进程
lsof -i:80 也可以查到80端口进程是否有进程在运行
netstat -tunlp |grep :80


参考链接

菜鸟教程 1 2 3