CentOSLinux系统中Redis数据库的安装及配置
MongoDB 传统方式安装
- 关闭 SELinux
- 编辑配置文件:
vim /etc/selinux/config - 把
SELINUX=enforcing改为SELINUX=disabled
- 编辑配置文件:
- MongoDB 资料
- 官网:https://www.mongodb.com
- 官网文档:https://docs.mongodb.com/manual/reference/method/
- 此时(20170228) 最新稳定版本为:3.4.2
- 官网下载:https://www.mongodb.com/download-center?jmp=nav#community
- 官网安装方法介绍:https://docs.mongodb.com/master/tutorial/install-mongodb-on-red-hat
- 官网文档使用的 Package 的安装方式。还有一种安装方式是下载 tar 包的方法,如果需要 tar 包方式可以看这篇文章:
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 ACCEPTservice iptables saveservice 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 ACCEPTservice iptables saveservice 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,1db.集名称.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, 10db.集名称.find({x:10}),查询列表,等同于 select from foo where x = 10db.集名称.find({x: {$lt:10}}),select from foo where x <= 10db.集名称.find({}, {y:true}),select y from foodb.集名称.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 不等于
- 其他材料:
- https://segmentfault.com/a/1190000007550421
- https://segmentfault.com/a/1190000005095959
- http://blog.csdn.net/endlu/article/details/51098518
- http://www.cnblogs.com/shaosks/p/5666764.html
- http://www.cookqq.com/blog/51277786-c26c-4f94-9be2-428f3633d9e5
- http://www.thinksaas.cn/topics/0/513/513705.html
- https://www.fedte.cc/p/511.html
导入 / 导出 / 备份 /还原
- 数据的导出、导入
- 导出:
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 包
- spring-data-mongodb:http://projects.spring.io/spring-data-mongodb/
- mongo-java-driver:https://github.com/mongodb/mongo-java-driver
GUI 管理工具
- Robomongo:https://robomongo.org/
基准测试
随机生成测试数据
CentOSLinux系统中Redis数据库的安装及配置的更多相关文章
- Linux系统中Oracle11g数据库的安装与验证
1.查看Linux系统的位数 2.下载Oracle10g数据库软件 https://blog.csdn.net/xiezuoyong/article/details/81197688 (需要注册Ora ...
- Redis(1)- Redis数据库的安装和配置
1.Redis安装 1.1.Linux环境安装Redis step-1:下载Redis 进入官网找到下载地址 https://redis.io/download wget https://github ...
- Ubuntu下redis数据库的安装和配置详细过程
Redis 安装 当前redis最新稳定版本是4.0.9 当前ubuntu虚拟机中已经安装好了redis,以下步骤可以跳过 最新稳定版本下载链接:http://download.redis.io/re ...
- Linux系统下Redis单机版的安装详细教程
Linux系统下Redis单机版的安装详细教程 1.下载软件安装包并上传到root目录 这里以旧版本的3.0进行安装,比较成熟稳定,具体软件可以通过qq群534073451文件下载
- SSD Cloud Hosting–Linode-Mysql数据库的安装与配置
接着上一篇的话题:SSD Cloud Hosting - Linode的配置和部署,搭建Java环境 8.Mysql数据库的安装与配置 安装 检查yum里边有没有mysql: yum list|gre ...
- mongoDB数据库的安装与配置
noSql数据库MongoDB的安装地址:https://www.mongodb.com/download-center?jmp=nav#community 选择相应的版本进行下载,在此以window ...
- linux学习之centos(三):mysql数据库的安装和配置
前言:mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库, ...
- Springboot 2.0.x 集成基于Centos7的Redis集群安装及配置
Redis简介 Redis是一个基于C语言开发的开源(BSD许可),开源高性能的高级内存数据结构存储,用作数据库.缓存和消息代理.它支持数据结构,如 字符串.散列.列表.集合,带有范围查询的排序集,位 ...
- linux应用之mysql数据库的安装及配置(centos)
CentOS下Mysql数据库的安装与配置 如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲 ...
随机推荐
- Qt的QSettings类和.ini文件读写
Detailed Description QSettings类提供了持久的跨平台的应用程序设置.用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表 ...
- Ubuntu「一键」设置全局代理
Ubuntu「一键」设置代理 sonictl note: the DNS problem may be still there. Except proxychains. WSL (Windows Su ...
- ES6数据结构Set、Map
一.Set数据结构 Set是无序的不可重复的多个value的集合体,Set结构是类似于数组结构,但是Set中的值都不能重复 常用的属性和方法 size:返回set实例的成员总数 add():添加某个值 ...
- 理解URL以及如何区分相对URL和绝对URL
URL(Uniform Resource Locator 统一资源定位符)可以理解为网络地址. url 包含了关于文件储存位置和浏览器应该如何处理文件的信息. URL的第一个部分称为模式scheme, ...
- php中如何上传整个文件夹里的所有文件?
1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...
- eclipse配置Maven——菜鸟篇
首先解释关于webservice: Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序, 可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现 ...
- java读取ldif文件并创建新的节点
所需jar包ldap.jar. jldap-4.3-source.jar http://www.java2s.com/Code/Jar/l/Downloadldapjar.htm 浏览器输入http: ...
- kibana的安装和监控
1.1:kibana搭建 kibana只需要在一台机器安装即可 1):解压 tar -zxvf kibana-5.5.2-linux-x86_64.tar.gz -C /home/angel/serv ...
- idea创建项目和依赖
创建项目和依赖 项目搭建完成后打开web.xml可看到如图使用的是servlet2.3,但版本太老,servlet2.3 jsp 的el表达式不工作,所以我们需要切换新版本. 切换新版本方法:打开t ...
- [CSP-S模拟测试]:题(DP+数学)
题目描述 出个题就好了.这就是出题人没有写题目背景的原因.你在平面直角坐标系上.你一开始位于$(0,0)$.每次可以在上/下/左/右四个方向中选一个走一步.即:从$(x,y)$走到$(x,y+1),( ...