Linux_MySQL_CentOS6/7_双网卡配置

                                                    优秀是一种习惯

文章目录

      • 程序员的环境
      • 大数据
      • 大数据处理数据的流程
      • 计算机基础 ==记==
      • 计算机硬件包括:
      • Linux 林纳斯·托瓦兹 特点 ==记==
      • Linux分支
      • Linux目录结构 ==记==
      • Linux基础命令 ==记==
      • 配置双网卡信息
        • CentOS 7 方法一:
        • CentOS 6 方法二:
      • jdk安装的两种形式
          • rpm安装
          • tar安装
      • Linux中安装tomcat
      • Linux中安装MySQL
    • 关系型数据库
      • 非关系型数据库
      • SQL分类 ==记==
      • 数据库登陆
      • 五种约束类型
      • DDL数据定义语言
      • DML 数据操作语言
          • delete和truncate 区别 ==记==
      • DQL数据查询语言
      • 聚合函数
      • 分组查询
          • having 和where 区别 ==记==
      • 分页查询 ==记==
      • 开窗函数 ==记==
          • insert into select 语句 ==记==
          • Create into as select 语句 ==记==
      • SQL语句的执行顺序
        • ==from-join-where-group-having-select-order-limit==
      • 运算符 关系表达式
      • 多表操作
        • 交叉查询
        • 内连接查询
        • 外连接查询
      • 多表的创建原则
      • 外键约束
      • 索引 (目录)
      • 索引的分类
        • 普通索引
        • 主键索引
      • TCL数据事务控制
        • ACID事务特性

程序员的环境

开发环境:自己电脑

测试环境:测试人员 测试软件

生产环境:平时上网使用的环境

大数据

海量数据

从海量数据中提取有用的价值

大数据处理数据的流程

数据的产生

1.业务数据库(用户产生的数据)

2.日志服务器(记录互联网上每一次操作)

3.爬虫爬取的数据(爬取同行的信息)

4.购买的信息

数据的抽取

Kettle

数据的存储

数据仓库

数据的计算

数据的应用

1.数据运营

2.用户画像

3.实施推荐

4.机器学习

5.数据挖掘

6.金融风控

计算机基础

冯诺依曼 提出冯诺依曼体系
计算机包括软件和硬件
软件:系统软件,操作系统,应用系统
硬件:CPU、输入输出设备

计算机硬件包括:

1.输入设备

2.输出设备

3.存储器 (硬盘:存储的数据不会丢失 内存:断电、重启即消失 读取速度远远快于硬盘)

4.运算器 (CPU=运算器+控制器)

5.控制器

Linux 林纳斯·托瓦兹 特点

1.开源、免费,拥有最为庞大的源码贡献者。

2.多用户、多任务。

3.良好的用户界面,优异的性能和稳定性。

快照:保存当前虚拟机状态 当虚拟机出现问题时 可以恢复到这个节点。

Linux分支

redhat:全球最大的linux发行商 被IBM收购。

ubuntu:目前,是Linux桌面操作系统做的最好的。

centos:免费版的redhat,基于redhat发行版的基础上 再重新编译发布的版本,目前被Redhat收购。

deepin:深度 目前国内做到的最好的一款Linux发行版。

Linux目录结构

/根目录

~用户家目录

#超级用户标识

¥普通用户标识

bin 二进制可执行的文件

sbin 二进制的命令 需要超级用户权限才可以执行

etc 系统配置文件 如网卡配置文件

home 用户的家目录

root 超级用户家目录

tmp 临时文件

dev 存放设备文件

usr 用于存放共享的系统资源

-rwxr-xr-- 21 root root 1292 Jun 28 18:59 anaconda-ks.cfg

长格式显示

-文件/d目录 当前用户的权限 当前用户所在组的权限 非当前用户所在组的权限 链接数 文件创建者名字 文件创建者所在组 文件大小 时间 文件名或目录名

r 可读 4

w可写 2

x可执行 1

-无 0

u 属主

g 属组

o 其他

  1. chmod 777 文件/目录
  2. chmod u+x 文件/目录 给属主加可执行权限
  3. chmod u=x 文件/目录 属主只可执行
  4. chmod -R 777 目录 给当前目录及目录下的所有文件加权限

Linux基础命令

. 开头的为隐藏文件

./ 或. 代表当前目录

…/或… 上一级目录

相对路径:相对于当前位置 省略当前所在路径

绝对路径:全路径

cd 回到用户家目录

cd …回到上一级目录

cd - 在最近两次打开的目录之间切换

ls -a 显示所有文件包含隐藏文件

ls -h 友好的显示文件大小

ls -l 全格式显示文件信息

ls -R 递归展示文件

mkdir -p 文件夹/文件夹 一次创建多级目录

touch 文件名.后缀 文件名.后缀 创建文件

tar -zcvf 压缩名.tar.gz Demo1.txt Demo2.txt

tar -zxvf 解压缩名.tar.gz -C 指定得到解压的地址

systemctl status/start/stop/restart firewalld/network/sshd CentOS 7

service firewalld/network/sshd status/start/stop/restart CentOS 6

rm -r 递归删除

rm -f 强制删除

cp -f 若目标文件已存在 直接覆盖原文件

cat -n 显示行数 包括 空行

grep -ni 关键字 文件名 查询文件中是否有关键字 显示行数 和 忽略大小写

grep -i 关键字 文件名 查询文件中是否有关键字 忽略大小写

rz上传

sz下载

scp 本地文件路径url - 用户名@IP地址: 目的路径 本机远端传文件

control+shift+c/v 复制 粘贴

control+l/clear清屏

ps -e 显示全部进程

ps -f长格式显示

ps -u 用户状态下运行的进程

| 管道 上一个输出 是下一个的输入

eg: ps -ef |grep -i mysql |…

kill -9 进程号 强杀

find 位置 【-type】 -name ‘内容’ 【-size 大小】-ls

find -type d 目录 f文件

vi/vim 三种模式 命令模式、编辑模式、末行模式。

命令模式:

i 进入编辑模式 光标前

I 行头

a 光标后

A行尾

o当前行后插入一空行

O当前行前插入一空行

eg:

O                                空行
I ---i【光标】a----A              当前行
o                                空行

gg 回到文件顶部

G 回到文件末尾

q 不保存退出

q!强制不保存退出

wq 保存退出

wq!强制保存退出

x退出

编辑模式:

vi 文件名 +20 打开文件第20行

yy 复制

nyy

dd剪切

ndd

p粘贴

np

末行模式:

/内容 查找

N向前查找

n向后查找

:%/旧文本/新文本/g 全部替换

:%/旧文本/新文本/gc 会有提示

y 代替光标所在的单词

a 全部替换

n 不替换光标所在的单词

q 退出

hostname 查看主机名

hostname 主机名 临时修改主机名

reboot 重启

halt 关机

vi /etc/hostname 修改主机

ifconfig 查看ip地址

ip addr 查看ip地址

ipconfig windows系统查看ip

yum install -y vim yum下载

ping ip地址 心跳

ping www.baidu.com 可以抓包 进行分析

rpm 相当于windows 中的exe

tar.gz 相当于windows中的zip

rpm -i 安装应用软件(install)

rpm -e 卸载应用程序

rpm -vh 显示安装进度

rpm -U 升级软件包

rpm -qa 显示所有已安装的软件

配置双网卡信息

方法对于当前的虚拟机来说因为网络ip是自动获取所以ip会经常发生变动,为了使ip固定并且可以联网所以可以搭建双网卡环境

CentOS 7 方法一:

添加nat类型的网络适配器一
cd /etc/sysconfig/network-scripts/ 
cp  ifcfg-ens33 ifcfg-ens37
vi ifcfg-ens37        修改配置信息
        TYPE=Ethernet
        PROXY_METHOD=none
        BROWSER_ONLY=no
        BOOTPROTO=dhcp     将动态获取改为静态 static
        DEFROUTE=yes
        IPV4_FAILURE_FATAL=no
        IPV6INIT=yes
        IPV6_AUTOCONF=yes
        IPV6_DEFROUTE=yes
        IPV6_FAILURE_FATAL=no
        IPV6_ADDR_GEN_MODE=stable-privacy
        NAME=ens33           改为ens37
        UUID=5a48b8d2-0563-4f1e-acff-789fb3cde5af  删除
        DEVICE=ens33          改为ens37
        ONBOOT=yes
        添加选项
        IPADDR=192.168.网段.100
注意:            
网段设置为对应Vm8所在的网段

ip不能设置为1,不能于ens33冲突

重启网络服务
  systemctl restart  network
  reboot
查看ip地址 ip addr

注意:连接静态ip  

CentOS 6 方法二:

网卡1:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.134.99
NETMASK=255.255.255.0
BROADCAST=192.168.134.255

#解释: 双网卡配置之网卡一   使用只粘贴上方文字
#网卡1使用NAT模式
#静态IP
#网段与自身虚拟机配置保持一致 即可
#作为虚拟机之前通信使用

网卡2:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

#解释: 双网卡配置之网卡二   使用只粘贴上方文字
#网卡1使用桥接模式
#动态IP
#作为连接公网使用

相关操作:

vi /etc/sysconfig/network-scripts/ifcfg-eth0    #配置网卡
rm -rf  /etc/udev/rules.d/70-persistent-net.rules #删除MAC地址
service network restart   #重启网络
service iptables stop  	  #关闭防火墙
chkconfig iptables off    # 关闭防火墙自启
ifconfig                  # 查看网络信息
vi /etc/hosts             # 主机名和IP的映射

jdk安装的两种形式

rpm安装
1.下载jdk的rpm包
2.上传rpm包到linux系统  默认上传目录为家目录  
3.安装jdk  rpm -ivh jdk.rpm
4.测试java -version
tar安装
1.下载jdk的tar.gz包
2.上传
3.解压缩 tar -zxvf jdk-8u171-linux-x64.tar.gz 
4.移动到usr 目录 mv jdk1.8.0_171/ /usr/
5.配置环境变量
      全局环境变量   /etc/profile  推荐
      用户环境变量   /root/.bash_profile 
       
      export JAVA_HOME=/usr/jdk1.8.0_171
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=.
6.使配置生效(两种方式)
   reboot
   source /etc/profile

Linux中安装tomcat

1.官网获取安装包

2.将安装包上传到linux系统  tar.gz

3.解压   tar -zxvf  tomcat.tar.gz

4.改名   (选做)

5.移动tomcat到 /usr目录下

6.启动或者停止tomcat

startup.sh  启动   ./startup.sh 

shutdown.sh 停止

7.查看tomncat的进程
ps -aux |grep tomcat   查看前台和后台进程(只需要关注后台进程)
jps                    查看所有和java相关的服务进程(Bootstrap)

8.网页形式访问
http://192.168.65.128:8080/

9.关闭防火墙 
systemctl stop  firewalld  

systemctl disable  firewalld

10.修改tomcat端口号
修改conf目录里面的server.xml

11.查看tomcat的实时日志
 tail -f /usr/tomcat8/logs/catalina.out 

Linux中安装MySQL

方法一:

rpm安装
1.预装配置
  a.安装 vim   vim是一个强大的文本编辑工具 (高亮的展示文件内容)  
      yum install -y vim
  b.卸载centos7中默认安装的有数据库mariadb(mysql和mariadb有冲突) 
     查看是否存在mariadb
     rpm -qa | grep mariadb  
     卸载
     rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64   
     --nodeps(表示只卸载mariadb不卸载mariadb相关的依赖)
     再次查看是否卸载成功
     rpm -qa | grep mariadb
2.获取mysql安装包
3.上传到linux系统中
4.安装mysql
   a)执行 rpm -ivh perl-* 
   (perl-PlRPC-0.2020-14.el7.noarch.rpm
   perl-Net-Daemon-0.48-5.el7.noarch.rpm
   perl-IO-Compress-2.061-2.el7.noarch.rpm
   perl-DBI-1.627-4.el7.x86_64.rpm
   perl-Data-Dumper-2.145-3.el7.x86_64rpm
   perl-Compress-Raw-Zlib-2.061-4.el7.x86_64,rpm
   perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm)
   b)执行 rpm -ivh net-tools-2.0-0.22.20131004git.el7.x86_64.rpm
   c)执行 rpm -ivh mysql-community-common-5.6.42-2.el7.x86_64.rpm
   d)执行 rpm -ivh mysql-community-libs-5.6.42-2.el7.x86_64.rpm
   e)执行 rpm -ivh mysql-community-client-5.6.42-2.el7.x86_64.rpm
   f)执行 rpm -ivh mysql-community-server-5.6.42-2.el7.x86_64.rpm

5.安装成功之后 会形成一个mysql服务(mysqld)
  systemctl start mysqld
  systemctl stop mysqld
  systemctl restart mysqld
6.账号设置 (设置一个新密码)
 mysqladmin -u root -p password
 第一个回车  需要输入原始密码(如果没有原始密码直接回车)
 第二个回车  输入新密码
 第三个回车  确认新密码
7.mysql -uroot -proot  登录到mysql服务 

注意:默认安装的mysql数据库没有远程访问权限

1.远程无法连接的原因有哪些?
  a.防火墙
  b.默认远程主机无法访问  本地访问开启(localhost但是其他的不行)
  如何开启mysql的远程主机访问?
  a.登录到当前的mysql
     mysql -uroot -proot
  b.操作mysql库
     use mysql;
  c.查看当前库中的所用表,关注user表
  d.查看表中数据
     select host,user,password from user \G;
  e.删除没有密码的数据
     delete  from user where password=""
  f.需要将host的字段设置为"%"  
    %意思就是所有主机都可以访问
  g.刷新权限
  FLUSH PRIVILEGES;

方法二:简单方法
https://blog.csdn.net/qq_45925467/article/details/115914020?spm=1001.2014.3001.5501#10MySQLJDK_924

关系型数据库

MySQL 开源免费的中型的数据库,被Oracle收购,6.x版本后开始收费。

Oracle 收费的大型数据库 Oracle公司的产品 Oracle收购SUN公司,收购mysql。

DB2 IBM公司的数据库产品,收费的 常用于银行。

sqlserver microsoft公司收费的中型数据库,c# .net等语言常用。

SQLite 嵌入式小型数据库 。

非关系型数据库

Redis 键值存储 读写性能极佳 小型数据据库

HBase 列式存储 高效存储大量数据的数据库

MongoDB 文档型数据库

SQL分类

DDL 数据的定义语言 create alter rename

DQL 数据的查询语言 select

DML 数据的操作语言 update insert delete

DCL 数据的控制语言 权限 安全级别的操作

TCL 数据的事务语言 transaction

数据库登陆

  1. mysql -u root -p 回车 输入密码
  2. mysql -u root -p密码
  3. mysql -u root -h IP地址 -P 3306 -p 回车 密码

五种约束类型

  1. 主键 primary key :唯一非空
  2. 外键 foreign key :用于关联表 一个表外键 指向另一个表的主键
  3. 唯一 unique :唯一 可以为空
  4. 不为空 not null :不能为空 可以重复
  5. 检查 check

DDL数据定义语言

  1. show databases; 显示所有数据库
  2. create database 数据库名; 创建数据库 方法1
  3. create database if not exists 数据库名; 创建数据库 方法2
  4. create database 数据库名 character set 字符集; 创建数据库 方法3
  5. drop database 数据库名; 删除数据库
  6. alter database 数据库名 character set 字符集; 修改数据库编码格式
  7. show create database 库名; 查看数据库字符集
  8. show create table 表名 查看表结构包含字符集
  9. select database(); 查看所在的数据库名称;
  10. create table 表名( 字段名 类型 约束,字段名 类型 约束,…); 创建表
  11. create table if not exists 表名( 字段名 类型 约束,字段名 类型 约束,…); 创建表
  12. create table 表名(字段名 类型,字段名 类型… 【constraint pk_表名】 primary key(字段1 ,字段2) ); 创建表
  13. alter table 表名 auto_increment =100; 设置自增长起始值
  14. alter table 表名 drop primary key; 删除主键
  15. rename table `旧表名` to 新表名; 修改表名称
  16. alter table 表名 change `旧字段名` 新字段名 类型 约束; 修改字段名及类型
  17. alter table 表名 modify 字段名 类型 约束; 修改约束及数据类型
  18. alter table 表名 add `字段` 类型 约束; 添加字段
  19. alter table 表名 drop `字段`; 删除字段
  20. drop table 表名; 删除表;

DML 数据操作语言

  1. use 数据库名; 切换数据库
  2. insert into 表名【(字段名,字段名,…)】 value(值,值,值…); 数据插入
  3. insert into 表名 values(值,值,值…)(值,值,值…)…; 数据插入 值与字段相对应
  4. update 表名 set 字段名=’ '; 更新该字段全部数据信息
  5. update 表名 set 字段名=’’ where 字段名 =‘ ’; 筛选数据进行修改对应的数据信息
  6. delete from 表名 where 字段名=‘ ’; 筛选数据进行删除对应的数据信息
delete和truncate 区别
  1. delete from 表名; DML 语言, 删除表所有信息, 一条条删除, 可以根据条件进行删除, 效率低 如果设置自增auto_increment,不清空记录数,配合事务 数据可以恢复。
  2. truncate 【table 】表名;   DDL, 直接将表删除,重新建, 只能全部删除, 效率高 如果设置自增auto_increment , 清空记录数, 删除的数据无法恢复。

DQL数据查询语言

  1. select * from 表名; 查询表所有信息
  2. select version(); 查看数据库版本号
  3. select distinct 字段1,字段2,from 表名; 如果distinct后面是一个字段就只看当前字段,如果后面是多个字段 需要看多个字段的的值是否的都一样 都一样则去重
  4. select * from 表名 where 字段名=‘ ’ order by 字段名 默认升序asc/降序desc ; 条件查询并根据字段进行排序
  5. select 别1.字段名,别2.字段名 from 表1 as 别1, 表2 别2 where 别1.字段名=别2.字段名; 多表查询,并起别名。

聚合函数

组函数:

  1. count() 统计个数
  2. sum() 计算求和
  3. avg() 求平均值
  4. max() 求最大数
  5. min() 求最小数

单行函数:

  1. abs() 绝对值

  2. sysdate() 查询当前日期

    eg: select sysdate() from dual【哑表/空表 无意义】 ;查询当前日期

  3. to_char(date日期值,‘字符串格式’) 给指定的日期值按照字符串要求转换成字符串类型值

    eg:select to_char(sysdate,‘yyyy-mm-dd,day,hh24:mi:ss’) from dual;

  4. to_date(string,‘格式字符串’) 将给定的string按照字符串要求变换成数据库支持的日期值

    eg: to_char(to_date(‘1997-11-09’,‘yyyy-mm-dd’),‘day’)

分组查询

  1. group by 分组
  2. group by having

硬性语法规定 首尾呼应 前后一致

  1. 只有出现在group by里的字段,才能够单独出现在select里
  2. 没有出现在group by里的字段,必须配合组函数才能出现在select里
  3. 如果在group by 里对字段应用了某个单行函数,那么这个字段select里必须使用同样的单行函数才能出现
having 和where 区别
  1. having 在分组后对数据过滤,where 在分组前对数据过滤。
  2. having 后面可以使用分组函数,where后面不可以使用分组函数。

分页查询

limit offset,count

offseet:整数,偏移量 ,计算方式 (页数-1)*每页显示条数

count:整数,标识查询多少条数据

eg: 查询pro表前5条数据;

select * from pro limit 0,5;

select * from pro limit 5;

开窗函数

  1. row_number() 不管排名是否相同 按照 1,2,3…N
  2. rank() 排名相同的次名相同 ,后面排名就会跳过几次 1,2,2,4…
  3. dense_rank() 排名相同的名次一样 且后面名词不跳跃1,2,2,3…
insert into select 语句

新建表2,将表1内容插入表2中。

insert into table2 select name from table1;

Create into as select 语句

将表1内容插入表2中 帮助创建表2。

Create into 表2 as select name from 表1;

SQL语句的执行顺序

from-join-where-group-having-select-order-limit

运算符 关系表达式

% 代表零个或多个任意字符

_ 代表一个字符

like 模糊查询

is null 为空

is not null 不为空

!= 不等于

<> 不等于

not 不等于

<= 小于等于

>=大于等于

between …and … 显示在某一区间内 (包含头尾)

in(x,y) 显示在in列表中的值

and 和

or 或

|| 字符串连接符 eg:邮箱

多表操作

交叉查询

select 字段 from 表1,表2

select 字段 from 表1 cross join 表2;

查询结果:笛卡尔积,两张表的乘积,产生大量的脏数据。

内连接查询

select 字段 from 表1 inner join 表2 ;

select 字段 from 表1 inner join 表2 where 条件;

查询结果:交集

外连接查询

select 字段 from 表1 left join 表2 on 条件

查询结果:左表全部 加 右表关联部分

select 字段 from 表1 right join 表2 on条件

查询结果:右表全部 加 左边关联部分

多表的创建原则

  1. 一对一: 两张表主键一一的对应, 任意一张表上创建一个外键 指向另一张表的主键 外间添加唯一约束

  2. 一对多:再多的一方创建外键 指向另一张表的主键

  3. 多对多:创建一个中间表 在中间表上创建外键 存放外键 分别指向主表的主键

外键约束

foregin key

  1. create table 表名(字段 类型长度 约束,… [constraint 外键名] foregin key (外键字段) references 主表名(主键) 创建外键约束
  2. alter table 表名 add [constraint 外键名] foregin key (外键字段) references 主表名(主键); 添加外键
  3. alter table 表名 drop foreign key 外键名; 删除外键

索引 (目录)

加速查询速度

索引:一般会加载where的条件字段上

查询速度快,但增删改操作会影响速度 ,因为不仅要保存数据,还要保存索引的文件。

索引的分类

普通索引

create index 索引名 on 表名(字段); 创建索引

create table 表名(字段 类型长度 约束,… index 索引名 (字段));

alter table 表名 add index 索引名(字段); 添加索引

show index from 表名; 显示索引

alter table 表名 drop index 索引名; 删除索引

drop index 索引名 on 表名 ; 删除索引

唯一索引

create unique index 索引名 on 表名(字段); 创建索引

create table 表名(字段 类型长度 约束,… unique 索引名 (字段));

alter table 表名 add unique 索引名(字段); 添加索引

select * from mysql.innodb_index_status where database_name=‘数据库名’; 显示索引

alter table 表名 drop index 索引名; 删除索引

主键索引

Primary key

TCL数据事务控制

ACID事务特性

原子性 、一致性、隔离性、持久性

事务:由一组不可再分的sql命令组成的集合。

连接客户端,系统开辟一块内存空间(回滚段),用来暂时保存SQL命令执行结果,在事务没有结束前,回滚段里的数据只有当前客户端可见,当事务结束,需要客户端明确处理回滚段中的数据,事务成功发出commit,数据库将回滚段的数据写入数据文件,如果失败 则回滚 删除回滚段数据。

  1. DQL 自动提交 (select)
  2. DML 手动提交 (updata,delete,insert),commit提交,rollback 回滚。

你可能感兴趣的:(数据库,大数据,linux,mysql,java)