目录
- Linux上jdk,mysql,tomcat安装【重点】
Windows 控制面板 添加/卸载程序
进行程序的安装、更新、卸载、查看
rpm命令:相当于windows的添加/卸载程序
进行程序的安装、更新、卸载、查看
本地程序安装:rpm -ivh 程序名
本地程序查看:rpm -qa
本地程序卸载:rpm -e --nodeps 程序名
yum命令:相当于可以联网的rpm命令
相当于先联网下载程序安装包、程序的更新包
自动执行rpm命令
准备工作:安装依赖
因为JDK,TOMCAT,MYSQL的安装过程中需要从网上下载部分支持包才可以继续,所以要求同学们提前安装下载好依赖
下载安装依赖包的命令,直接一个个复制到linux执行即可
yum install glibc.i686
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
上面的命令如果报
那么就在命令后加上 --setopt=protected_multilib=false
即完整命令变为: yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 --setopt=protected_multilib=false
该命令为检查上面是否安装更新成功:yum update libstdc++-4.4.7-4.el6.x86_64
yum install gcc-c++
glibc.i686 | 8MB+21MB |
libaio.so.1 libgcc_s.so.1 libstdc++.so.6 | 417KB |
libstdc++-4.4.7-4.el6.x86_64 | 仅更新检查, 无下载内容 |
yum install gcc-c++
| 19MB |
|
|
Linux系统上安装JDK:
安装步骤:
卸载OpenJDK
执行命令查看:
- rpm –qa | grep java
- 卸载OPENJDK(自带的jdk)
- 先查看当前安装的jdk版本
- rpm -qa | grep jdk
- 得到java-1.X.X等信息 替换下面命令
- 执行 pm -e --nodeps java-1.X.X.X
- 先查看当前安装的jdk版本
如:rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686
创建JDK的安装路径:
在/usr/local/ 创建文件夹java目录
mkdir -p /usr/local/java
上传安装文件到linux:
- cd ~
- ll
解压tar.gz
首先需要安装依赖:【1~5分钟】上面已经安装好了
- tar -zxvf jdk-7u71-linux-i586.tar.gz -C /usr/local/java
配置环境变量:
编辑此文件:vim /etc/profile
在此文件最下面插入一下代码:
#set java environment
JAVA_HOME=/usr/local/java/jdk1.7.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
然后保存即可安Esc 退出保存
重新加载配置文件:【否则环境变量不会重新执行】
source /etc/profile
Linux系统上安装MySQL:
安装MySQL:
卸载自带mysql:
查询mysql的安装情况
rpm -qa | grep -i mysql
卸载原生的MySQL
rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686
上传mysql到Linux:
安装依赖(准备阶段已经安装过了):
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
yum update libstdc++-4.4.7-4.el6.x86_64
安装mysql的服务端:
安装服务端
rpm -ivh MySQL-server-5.5.49-1.linux2.6.i386.rpm
安装mysql的客户端:
rpm -ivh MySQL-client-5.5.49-1.linux2.6.i386.rpm
启动mysql的服务:
启动MySQL服务
service mysql start
设置mysql初始密码并登陆MySQL:
/usr/bin/mysqladmin -u root password '123456'
其他问题:
如果是mysql 5.6以上的话,安装好服务会自动给一个随机密码,所以上面的方式可能行不通。那么就要手动去重置密码
重置方法为
1、先找到my.cnf文件进行编辑
可以用find / -name my.cnf命令找一下
找到文件后用
vim 文件全路径 对文件进行编辑,找到mysqld,在下面增加skip-grant-tables 。
作用是登陆时跳过登陆认证,换句话说就是root什么密码都可以登陆进去,然后:wq保存退出后,用service mysql restart重启mysql。
现在不论什么密码都可以登陆root用户了。
接下来,在Linux中输入如下命令:
# mysql -uroot -p 此时登录不需要密码了 直接回车
mysql> use mysql;
mysql> update user set password=password('123456') where user='root';
mysql> flush privileges;
退出mysql ctrl+c 退出
然后要重新编辑my.cnf,把刚刚增加的skip-grant-tables 删掉,不然登录就一直不需要密码了。
删掉后在重启一下mysql , service mysql restart
然后就可以去用密码 123456 试试咯
登进去后密码还需要执行命令 初始化一下
SET PASSWORD = PASSWORD('123456');
到此密码重置结束
设置开机自动启动mysql:
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on (off)关闭
开启远程服务:
登录mysql:
//赋予root用户所有权限,远程登录密码是123456
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
设置Linux的防火墙:
Linux防火墙默认拦截3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
此时就可以用navicat去远程连接到linux中的mysql了
Linux系统上安装tomcat:
安装tomcat:
上传tomcat的安装文件:
创建tomcat的安装路径:
mkdir -p /usr/local/tomcat
解压tomcat
tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local/tomcat
设置防火墙:
开放8080端口
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT #开启8080端口
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务
查看端口是否已经开放
/etc/init.d/iptables status
启动tomcat:
启动tomcat
执行 /usr/local/tomcat/apache-tomcat-7.0.57/bin/startup.sh
关闭tomcat
执行 /usr/local/tomcat/apache-tomcat-7.0.57/bin/shutdown.sh
-
redis简述及安装
关系型数据库(SQL):
Mysql,oracle
特点:数据和数据之间,表和字段之间,表和表之间是存在关系的
例如:部门表 001部分, 员工表 001
用户表,用户名、密码
分类表 和 商品表, 一对多关系。
优点:①数据之间有关系,进行数据的增删改查时非常方便的。
②关系型数据库 有事务操作。 保证数据的完整性
缺点:1、因为数据和数据之间有关系的,关系是由底层大量算法保证
大量算法会拉低系统运行速度
大量算法会消耗系统资源
2、海量数据的增删改查时会显得无能为力。
很可能宕机
3、海量数据环境下对数据表进行维护/扩展,也会变得无能为力
update product set cname = ‘手机数码’;//修改所有数据
把商品表的cname字段,由varchar(64), char(100)
适合处理一般量级数据,安全。
钱
非关系型数据库(NOSQL):
为了处理海量数据,需要将关系型数据库的关系 去掉。
非关系型数据库设计之初 是为了替代 关系型数据库的
Redis
优点:1、海量数据的增删改查,非常轻松应对
2、海量数据的维护非常轻松。
缺点:1、数据和数据之间没有关系,所以不能一目了然
2、非关系型数据库,没有关系,没有强大的事务保证数据的 完整和安全
适合处理海量数据,效率。不一定安全
奥运健儿奖牌总数
关系型数据库+非关系型数据库 ====》项目
重要数据 海量操作数据,不重要
Redis使用环境:
1、关系型数据库的缓存存在
2、可以做任务队列
3、大量数据运算
4、排行榜
Redis非常擅长做大量数据的排行榜
redis安装:
redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。如果没有gcc环境,需要安装gcc:(环境已经导入完成)
yum install gcc-c++ (上面已经做过了)
如果提示是否下载,输入y。
如果提示是否安装,输入y
- 步骤1:将Windows下下载的压缩文件上传到Linux下。通过secureCRT进行上传,步骤如下:
l alt + p
l put F:/redis-3.0.0.tar.gz
l
- 步骤2: 解压文件
tar -zxvf redis-3.0.0.tar.gz
- 步骤3: 编译redis (编译,将.c文件编译为.o文件)
l 进入解压文件夹,cd redis-3.0.0
l 执行make
1)如果没有安装gcc,编译将出现错误提示。(如果安装失败,必须删除文件夹,重写解压)
2)安装成功
- 步骤4: 安装
make PREFIX=/usr/local/redis install
l
安装完后,在/usr/local/redis/bin下有几个可执行文件
redis-benchmark ----性能测试工具
redis-check-aof ----AOF文件修复工具
redis-check-dump ----RDB文件检查工具(快照持久化文件)
redis-cli ----命令行客户端
redis-server ----redis服务器启动命令
- 步骤5: copy文件
回到根目录的redis-3.0.0文件夹,把配置文件复制到redis目录
redis启动需要一个配置文件,可以修改端口号等信息。
cp redis.conf /usr/local/redis
注:如果没有配置文件redis也可以启动,不过将启用默认配置,这样不方便我们修改端口号等信息
- 前端启动:(了解)-无法部署集群
首先进入到 redis安装目录
cd /usr/local/redis
然后进入到bin目录
./bin/redis-server (开启redis的server)
服务端启动好了后,接下去启动客户端连接到服务端。操作redis
1、一样先进入到redis的目录
cd /usr/local/redis
然后
./bin/redis-cli 如下图
因为默认是6379的,如果其他端口的话 需要指定上端口号
./bin/redis-cli -p 6379
指定ip跟端口的连接
redis-cli -h ip地址 -p 端口
./bin/redis-cli -p 6379
运行客户端(默认连接本机6379端口):./bin/redis-cli ctrl+C 退出客户端的连接
- Redis启动-后端模式
- 修改redis.conf配置文件, daemonize yes 以后端模式启动。
vim /usr/local/redis/redis.conf
- 启动时,指定配置文件
cd /usr/local/redis/
./bin/redis-server ./redis.conf 这边要多加载这个redis.conf配置文件
- Redis默认端口6379,通过当前服务进行查看
ps -ef | grep -i redis
redis的关闭:
- 查询到PID,kill -9 pid 【断电,非正常关闭,一般不用,否则造成数据丢失】
②正常关闭 【正常关闭,数据保存】
./bin/redis-cli shutdown
3、redis数据类型【重点】
redis 使用的是键值对 保存数据。(map)
key:全部都是字符串
value:有五种数据类型
Key名:自定义,key名不要过长,否则影响使用效率
Key名不要太短,最好是有意义。
4、redis命令-String命令【重点】
字符串类型是Redis中最为基础、常用的数据存储类型,字符串在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
二进制安全和数据安全是没有关系的。
MySQL-关系型数据库,二进制不安全。【乱码丢失数据】
Redis 二进制数据安全
赋值:相当于map.set
- set key value:设定key持有指定的字符串value,如果该key存在则进行覆盖操作。总是返回”OK”
如果赋予相同的key,新的value会覆盖老的value
取值:相当于map.get
- get key:获取key的value。如果与该key关联的value不是String类型,redis将返回错误信息,因为get命令只能用于获取String value;如果该key不存在,返回(nil)。
删除:
- del key :删除指定key
返回值是数字类型,表示删了几条数据
扩展:
- getset key value:先获取该key的值,然后在设置该key的值。
- incr key:将指定的key的value原子性的递增1.如果该key不存在,其初始值为0,在incr之后其值为1。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。相当于 ++i
- decr key:将指定的key的value原子性的递减1.如果该key不存在,其初始值为0,在incr之后其值为-1。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。相当于 --i
Incr和decr 只能对字符串是数字的 进行操作。
- append key value:拼凑字符串。如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key/value
String使用环境:
主要用于保存json格式的字符串
5、redis命令-hash(了解)
Redis中的Hash类型可以看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。
Hash ----à {username:”张三”,age:”18”,sex:”man”}------javaBean
Hash特点:占用的磁盘空间极少
赋值:
- hset key field value:为指定的key设定field/value对(键值对)。
- hmset key field value [field2 value2 …]:设置key中的多个filed/value
取值:
- hmget key filed1 filed2 ….:获取key中的多个filed的值
- hgetall key:获取key中的所有filed-vaule
删除:
删除单个字段
- del key :删除整个hash
扩展:
- hkeys key :获得所有的字段
- hvals key:获得所有的value
keys * 查询所有的key
6、Jedis(java操作redis数据库技术)【重点】
Redis有什么命令,Jedis就有什么方法。
防火墙设置:不然java会报连接超时
开放6379端口
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
保存配置
/etc/rc.d/init.d/iptables save
此时启动redis的服务就可以用java去访问
启动命令,后端启动
cd /usr/local/redis/ 先到redis目录下
./bin/redis-server ./redis.conf 运行启动
Jedis连接池:
/**
* 连接池方式连接
*/
public static Jedis demo2() {
// 获得连接池对象
JedisPoolConfig config = new JedisPoolConfig();
// 设置连接数
config.setMaxTotal(20);
// 设置最大空闲连接数
config.setMaxIdle(20);
jedisPool = new JedisPool(config, "192.168.32.129", 6379);
// 获得核心连接对象
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
} catch (Exception e) {
e.printStackTrace();
}
return jedis;
}
抽取连接池工具:
JedisUtils
package jedisDemo.Demo;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class jedisUtil {
private final static JedisPool POOL;
// 初始化操作
static {
// 获得连接池对象
JedisPoolConfig config = new JedisPoolConfig();
// 设置连接数(不是必须要设置)
config.setMaxTotal(20);
// 设置最大空闲连接数(不是必须要设置)
config.setMaxIdle(20);
POOL = new JedisPool(config, "192.168.32.129", 6379);
}
/**
* 从连接池中获取连接对象返回
*
* @return
*/
public static Jedis getJedis() {
return POOL.getResource();
}
}
以后直接调用该类的getJeis(redis的Ip连接的配置后续在说)