• CentOSLinux系统中Redis数据库的安装及配置


    MongoDB 传统方式安装

    yum 卸载

    • yum remove "mongodb-org-*"

    3.4.2 yum 安装

    • 新建文件:vim /etc/yum.repos.d/mongodb-org-3.4.repo,文件内容如下:
    [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    • 如果你要安装 2.6 的版本,可以使用下面这个内容:
    [mongodb-org-2.6]
    name=MongoDB 2.6 Repository
    baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
    gpgcheck=0
    enabled=1
    • 上面文件新建好之后,输入安装命令:yum install -y mongodb-org,一共有 5 个包,加起来有 100M 左右,国内下载速度不快,需要等等,可能还会出错,如果出错用国内源:https://mirror.tuna.tsinghua.edu.cn/help/mongodb/
    • 开放防火墙端口:
      • iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
      • service iptables save
      • service iptables restart

    3.6 yum 安装:

    • 新建文件:vim /etc/yum.repos.d/mongodb-org-3.6.repo,文件内容如下:
    [mongodb-org-3.6]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/testing/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
    • 上面文件新建好之后,输入安装命令:yum install -y mongodb-org,一共有 5 个包,加起来有 100M 左右,国内下载速度不快,需要等等,可能还会出错,如果出错用国内源:https://mirror.tuna.tsinghua.edu.cn/help/mongodb/
    • 开放防火墙端口:
      • iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
      • service iptables save
      • service iptables restart

    3.4.10 tar 绿色安装

    • 下载:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.10.tgz
    • 解压到指定目录,并重命名:
    tar zxvf mongodb-linux-x86_64-rhel62-3.4.10.gz
    
    mv mongodb-linux-x86_64-rhel62-3.4.10 mongodb
    
    mv mongodb /usr/program
    
    • 增加系统变量,我这里是用 zsh
    vim ~/.zshrc 
    
    export MONGODB_HOME=/usr/program/mongodb
    export PATH=$MONGODB_HOME/bin:$PATH
    
    source ~/.zshrc
    
    • 测试是否安装成功:mongod -v,安装成功会得到如下信息:
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] MongoDB starting : pid=31155 port=27017 dbpath=/data/db 64-bit host=youmeek
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] db version v3.4.10
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] modules: none
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] build environment:
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten]     distmod: rhel62
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] options: { systemLog: { verbosity: 1 } }
    2017-12-03T00:08:09.854+0800 D -        [initandlisten] User Assertion: 29:Data directory /data/db not found. src/mongo/db/service_context_d.cpp 98
    2017-12-03T00:08:09.854+0800 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
    2017-12-03T00:08:09.854+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
    2017-12-03T00:08:09.854+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] now exiting
    2017-12-03T00:08:09.854+0800 I CONTROL  [initandlisten] shutting down with code:100
    
    • 创建数据库、日志存放目录:
    mkdir -p /usr/program/mongodb/data
    mkdir -p /usr/program/mongodb/log
    touch /usr/program/mongodb/log/mongodb.log
    
    • 创建配置文件:vim /etc/mongodb.conf,并写入内容:
    dbpath=/usr/program/mongodb/data
    logpath=/usr/program/mongodb/log/mongodb.log
    logappend=true
    port=27017
    fork=true
    
    • 看下是否已经有 mongo 在运行,如果有就 kill 掉:ps -ef | grep mongo
    • 通过配置文件启动:mongod -f /etc/mongodb.conf
    • 显示下面信息则表示启动了:
    about to fork child process, waiting until server is ready for connections.
    forked process: 29167
    child process started successfully, parent exiting
    
    • 进入 MongoDB 后台管理 Shell:cd /usr/program/mongodb/bin && ./mongo
    • 创建数据库:
    use youmeek
    
    • 创建用户,并授权,需要注意的是:dbAdmin 的权限是没有包含 readWrite,所以很多时候要根据需求添加多个权限:
    db.createUser(
        {
            user: "youmeek",
            pwd: "youmeek123456",
            roles: [ 
                { role: "dbAdmin", db: "youmeek" },
                { role: "readWrite", db: "youmeek" }
            ]
        }
    )
    
    • 开放防火墙端口:
    iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
    service iptables save
    service iptables restart
    
    • 修改配置文件:vim /etc/mongodb.conf,在文件最后面增加一行:
    auth=true
    
    • 表示开启用户认证,这样后面要连接 mongo 就必须输入数据库、用户名、密码。
    • 然后重启 mongo,开始使用。

    其他常用命令:

    • 检查版本:mongod --version
    • 启动:service mongod start
    • 停止:service mongod stop
    • 重启:service mongod restart
    • 添加自启动:chkconfig mongod on
    • 进入客户端:mongo,如果有授权用户格式为:mongo 127.0.0.1:27017/admin -u 用户名 -p 用户密码
    • 卸载命令:yum erase $(rpm -qa | grep mongodb-org)
      • 删除数据库:rm -r /var/lib/mongo
      • 删除 log:rm -r /var/log/mongodb

    添加授权用户

    • 先进入 mongo 客户端 :mongo
    • 输入:use admin,然后输入:
    db.createUser(
       {
         user: "gitnavi",
         pwd: "123456",
         roles: [ { "role" : "dbAdmin", "db" : "youmeek_nav" } ]
       }
    )
    • 修改密码:db.changeUserPassword(用户名, 密码)
    • 删除用户: db.removeUser(用户名)
    • 内置角色:
      • read:允许用户读取指定数据库
      • readWrite:允许用户读写指定数据库
      • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
      • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
      • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
      • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
      • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
      • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
      • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
      • root:只在admin数据库中可用。超级账号,超级权限

    MongoDB 配置

    • 编辑配置文件:vim /etc/mongod.conf,注意:编辑完记得重启 MongoDB 服务
    • 默认的数据库目录:/var/lib/mongo
    • 默认的日志目录:/var/log/mongodb
    • 默认的配置文件内容:
    bindIp:127.0.0.1 #注释此行,表示除了本机也可以登陆
    
    # 补充这个,表示必须使用带用户名密码的才能请求 mongodb,比如访问 admin 数据库:mongo 192.168.1.121:27017/admin -u 用户名 -p 用户密码
    security:
      authorization: enabled

    常用命令

    • show dbs,查看已有数据库
    • use 数据库名,进入指定数据库,如果这个数据库不存在了也是可以进入的,进入之后 insert 一条语句就会自动创建了。
    • db,显示当前用的数据库
    • show collections,列出当前数据库的collections(当前数据库下的表)
    • show tables,查看数据库中的集
    • exit,退出
    • show users,查看当前库下的用户
    • db.system.users.find().pretty(),查看所有用户
    • db.dropAllUsers(),删除所有用户
    • db.dropDatebase(),删除当前这个数据库
    • db.集名称.find(),查看集中的所有数据,等同于:select * from 表名称
    • db.集名称.findOne(),查看集中的一条数据,等同于:select * from 表名称 limit 0,1
    • db.集名称.find().limit(10),查看集中的一条数据
    • db.集名称.find().sort({name:1}),查询列表,根据字段name排序 #1正序 -1倒序
    • db.集名称.find().sort({x:1}).skip(5).limit(10),查询列表,根据字段name排序,等同于 select from foo order by x asc limit 5, 10
    • db.集名称.find({x:10}),查询列表,等同于 select from foo where x = 10
    • db.集名称.find({x: {$lt:10}}),select from foo where x <= 10
    • db.集名称.find({}, {y:true}),select y from foo
    • db.集名称.find({"address.city":"gz"}),搜索嵌套文档address中city值为gz的记录
    • db.集名称.find({likes:"math"}),搜索数组
    • db.集名称.insert({"a":1,"b":2}),插入一个测试数据
    • db.集名称.find({name:"lichuang"}),根据索引或字段查找数据
    • db.集名称.update({name:"张三"},{$set:{name:"李四"}}),更新数据,等同于:UPDATE 表名 SET name='李四' WHERE name = '张三'
    • db.集名称.update({name:"张三"},{$set:{name:"李四"},{upsert:true},{multi:true}}),更新数据,等同于:UPDATE 表名 SET name='李四' WHERE name = '张三'。其中特殊的是 upsert 为 true 的时候,表示如果没有这条数据,则创建一条。multi 表示,所有满足条件的都进行更新,不然默认只找到的第一条更新。
    • db.集名称.remove({name:"lichuang"}),删除数据,等同于:DELETE FROM 表名 WHERE name='lichuang'
    • db.集名称.drop(),删除这个集合
    • db.集名称.getIndexes(),查看集合索引
    • db.集名称.dropIndex("name_1"),删除索引
    • db.集名称.ensureIndex({title:1}),创建索引
    • db.集名称.ensureIndex({titile:1},{name:"indexname"}),创建索引,第二个属性设置索引名称
    • db.集名称.ensureIndex({titile:1},{unique:true/false}),创建唯一索引,第二个属性设置为true说明该字段中值不能重复,false可以重复
    • db.集名称.ensureIndex({name:1,age:1}),复合索引
    • db.集名称.ensureIndex({"address.city":1}),在嵌套文档的字段上建索引
    • db.集名称.insert({"article","text"}),全文索引,指定为text类型,每个数据集合中只允许创建一个全文索引
    • db.adminCommand( {setParameter:1, textSearchEnabled:true}),开启全文本索引功能
    • 一些符号说明:
    $lt ->less then 小于
    $lte ->less than and equal 不大于
    $lt ->less then 小于
    $gt ->greater then 大于
    $gte ->greater then and equal 不小于)
    $ne ->not equal 不等于

    导入 / 导出 / 备份 /还原

    • 数据的导出、导入
      • 导出:mongoexport -h 127.0.0.1 -u 用户名 -p 密码 -d 库名 -c 集合名 -o /opt/mongodb.json --type json
      • 导入:mongoimport -h 127.0.0.1 -u 用户名 -p 密码 -d 库名 -c 集合名 --file /opt/mongodb.json --type json

    Java 包

    GUI 管理工具

    基准测试

    随机生成测试数据

  • 相关阅读:
    hdu 1232 最小生成树
    hdu 1260 dp
    hdu 1385 最短路径按字典数输出
    hdu 1541 树状数组
    hdu 1544 求字符串回文
    hdu 1728
    hdu 1754 树状数组求最大值
    hdu 1892 二维树状数组
    hdu 2082 母函数
    循环
  • 原文地址:https://www.cnblogs.com/fusheng11711/p/11156864.html
Copyright © 2020-2023  润新知