目录
问题:
1、虚拟机连不上
排查次序
1.1先检测网路图标有没有,假如没有检测/etc/sysconfig/network-scripts/ifcfg-ens33的配置
1.2再检测vm的编辑中的虚拟网路编辑器,将vmnet8以外的其他虚拟网卡全部移除
1.3关掉主机的防火墙和杀毒软件
2、ssm整合-springboot体验
Linux-服务+网路端标语
服务:通常在后台运行
centos6有7种运行级别,系统启动时会根据配置的一个运行级别启动,之后使用init.d再依照此运行级别去判定服务是否在此级别中启动。到centos7时只保留了3和5
1.1在centos6中怎样管理服务(centos7也兼容6的服务管理命令)
1-chkconfig--list:查看服务运行级别
2-service服务名status查询服务的状态,firewalld表示防火墙的服务名
3-service服务名start启动服务
4-service服务名stop停止服务
防火墙:端标语通常都被防火墙过滤掉linux redis设置密码,只曝露22端标语
5-ll/etc/init.d/查看init进程管理的服务文件夹
6-chkconfig--level2networkoff设置指定的服务在指定运行级别关掉
7-chkconfig--level2networkon设置指定服务在指定运行级别启动
1.2在centos7中管理服务(centos7天字第一号进程是systemd,只有3和5两个运行级别)
1-systemctllist-unit-files查看所有的服务列表
ctrl+c退出列表
查询指定的服务:systemctllist-unit-files|grepfirewalld
2-systemctlstatus服务名:查看服务器的状态
3-systemctlstart服务名:启动指定服务
4-systemctlstop服务名:停止服务
5-systemctldiable服务名:设置服务开机严禁启动
6-systemctlenable服务名:设置服务开机自启
7-systemctlget-default:查看当前系统的运行级别
8-systemctlset-defaultmulti-user.target/graphical.target:设置系统的运行级别
1.3网路端标语查询
netstat-anp|grep端标语
将springboot项目上传到虚拟机的/opt目录下
java-jarxxxx.jar开启Tomcat服务器
主机浏览器访问:虚拟机ip地址:8080/hello
假如虚拟机控制台没有报错,虚拟机防火墙将恳求拦截了
须要先将防火墙的服务器进行关掉systemctlstopfirewalld.service,再打开Tomcat服务器
netstat-anp|grep8080
kill-91490:杀害占用端标语的进程
2、Linux-用户权限命令(了解)
id用户名:查看用户
useradd用户名:新增用户
通过useradd的形式添加的用户都是普通用户,所有的用户的家目录还会创建在/home目录下
passwd用户名:设置密码
whoami:查看当前正在使用系统的用户
whoami:查看登入的用户
su用户名:切换用户
从超级管理员切换到普通用户不用输入密码
从普通用户到root须要输入密码
userdel-r用户名:删掉用户和它的/home目录下的家目录文件
[root@localhost opt]# userdel -r hello
userdel: user hello is currently used by process 4290
表示:用户hello 正被当前进程4290使用。杀死该进程即可。
groupadd组名:创建用户组
usermod-g组名用户名:将用户添加到组中
useradd-g组名新用户名:新创建用户并分配到组中
groupdel组名:删掉组
groupmod-n新组名旧组名:更改组名
/etc/passwd:储存用户的信息
/etc/shadow:储存用户的影子信息[密码]
/etc/group:组
权限:
列表中的第一列代表文件类型权限
代表权限的第一列不仅.,剩下10位
第一位:代表文件类型d代表文件夹,-代表文件,l代表链接
第2~4位:u代表文件拥有者的权限
rwx:假如使用-代表其中一个,就表示没有这个权限(r-x可读可执行不能写)
r:read读权限,w:write写权限linux redis设置密码,x:excute执行权限
第5~7位:g代表文件拥有者所在组的成员拥有的权限
第8~10位:o代表和文件拥有者不再同一个组的其他成员的权限
更改文件夹的权限:
第一种(不推荐):直接使用rwx表示权限进行设置
chmodg=rxlaohan:添加权限
chmodg-rxlaohan:删掉laohan文件夹的组的权限
第二种(推荐):将权限使用数字描述
r=4w=2x=1
chmod710laohan:第一组权限全部设置,第二组权限设置x,第三组没有权限
第三列代表文件的拥有者
第四列代表文件拥有者所在的组
chgrp组名文件夹名:更改文件夹所在组
chown-R用户名文件夹名:递归更改文件夹和他内部所有文件的拥有者
3、Linux-安装卸载命令3.1本地安装
rpm-qa|grep-ifirewalld:查询已安装的程序,并忽视大小写筛选结果
rpm-e安装包名:卸载已安装的程序
rpm-ivh安装包名:安装程序
安装操作系统时,系统压缩包自带了十分多的应用,可以在硬盘加载的ISO镜像中找到傲游浏览器的安装包(/run/media/root/CentOS7x86_64/Packages)
cd /run/media/root/CentOS 7 x86_64/Packages/
rpm -ivh firefox-52.2.0-2.el7.centos.x86_64.rpm
3.2远程联网安装
CentOS提供了中央软件库,可以通过yum命令远程联接下载程序手动安装
yumlist|grep-ifirefox:联网搜索指定的程序安装包
yuminstallfirefox.x86_64:安装指定的程序
4、Linux-开发环境搭建4.1jdk
1、拷贝讲义中的早已下载好的jdk到虚拟机的/opt目录下
2、切换到opt目录下,解压缩压缩包
tar-zxvf压缩包名:解压缩所有的压缩包
jdk解压可用,无需安装,并且jdk的命令在bin目录下[/opt/jdk1.8.0_152/bin]
在控制台执行jdk的命令时,系统默认从path环境变量中查找对应的命令,我们自己解压的jdk没有配置到环境变量中,所以不能使用
3、将自己解压的jdk的bin目录配置到linux系统的环境变量中
vim/etc/profile
在文件最后:shift+g
JAVA_HOME=/opt/jdk1.8.0_152
PATH=/opt/jdk1.8.0_152/bin:$PATH
export JAVA_HOME PATH
source/etc/profile:重新加载环境变量
====启动tomcat时
1.可以配置全局路径
2.可以通过./的形式来启动
在windows里执行的脚本是startup.bat,而在linux里执行的脚本是startup.sh。
4.2mysql
1、检查是否存在已安装的mysql
[root@atguigu bin]# rpm -qa|grep -i maria
mariadb-libs-5.5.56-2.el7.x86_64
2、卸载已安装的mysql[mysql安装时会安装其他的多个依赖]
rpm -e --nodeps mariadb-libs
3、检查mysql之后要使用的文件夹的权限[/tmp]
chmod 777 /tmp
4、安装mysql
rpm -ivh MySQL-client-5.5.54-1.linux2.6.x86_64.rpm
rpm -ivh MySQL-server-5.5.54-1.linux2.6.x86_64.rpm
5、检查是否安装成功
rpm -qa|grep -i mysql
6、连接mysql
假如报以下错误linux空间,表示mysql服务没有启动
systemctl start mysql
ps -aux|grep -i mysql
//连接mysql,初始化安装mysql没有密码
mysql -hlocalhost -P3306 -uroot -p
7、修改mysql编码
//连接mysql后,查看mysql的字符编码
show variables like '%char%';
//mysql默认编码为latin1,需要修改为UTF-8
//mysql安装后,配置文件保存在 /usr/share/mysql/my-huge.cnf
linuxmysql启动时,优先在/etc下查找f配置文件作为mysql的配置,假如/etc下没有此文件,mysql再到/usr/share/mysql/f.
//将my-huge配置文件拷贝到/etc下一份,并改名为my.cnf
cp my-huge.cnf /etc/my.cnf
//修改/etc/my.cnf,设置mysql的编码格式为utf-8
在17行[client]下添加
default-character-set=utf8
在26行[mysqld]下添加
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
在138行[mysql]添加
default-character-set=utf8
保存退出
重启mysql服务加载更改后的配置文件
service mysql restart
mysql -uroot -p
8、修改mysql密码
mysql5.5密码存在mysql库中的user表中
mysql保存用户信息时存在mysql.user表中
host代表ip地址,user代表帐号,password代表密码,xxx_priv代表权限
访问mysql时,mysql辨识用户是通过登入帐号+登陆时的ip地址组合判定帐号
root@localhost
删掉localhostroot以外的其他用户:delete句子+条件删掉
更改用户密码:
select host ,user,password , select_priv from mysql.user;
update mysql.user set password = password('123123');
或者 set password=password('123456');
更改后须要重启mysql服务:servicemysqlrestart
9、远程联接mysql[主机使用sqlyog去联接虚拟机中的mysql]
缘由:mysqluser表中,只有localhost地址才可以使用root用户联接mysql服务
更改user表中的root@localhost用户,将host更改为%(键值,统配所用)
重启mysql红帽子linux下载,再度使用sqlyog远程联接
10、安装web测试工具ab
使用yum安装:yuminstall-yhttpd-tools
使用:
ab--help
ab-n8000-c800:8080/hello
5、Nosql数据库简介技术发展
Web1.0时代
Web2.0时代
解决CPU及显存压力
解决IO压力
NoSQL数据库概述NoSQL(NoSQL=NotOnlySQL),意即“不仅仅是SQL”,亦即非关系型的数据库。NoSQL不依赖业务逻辑形式储存,而以简单的key-value模式储存。因而大大的降低了数据库的扩充能力。NoSQL使用场景对数据高并发的读写海量数据的读写对数据高可扩充性的NoSQL不适用场景须要事务支持基于sql的结构化查询储存,处理复杂的关系,须要即席查询。(用不着sql的和用了sql也不行的情况,请考虑用NoSql)Memcached
RedisMongdb
可以按照数据的特性取代RDBMS,成为独立的数据库。或则配合RDBMS,储存特定的数据。
6、redis简介Redis概述
配合关系型数据库做高速缓存
多样的数据结构储存持久化数据
redis之前的版本只支持linux
只有linux能够最优化的使用redis
7、redis安装+启动停止
7.1将redis安装包拷贝到虚拟机的/opt目录下
7.2解压缩redis的压缩包:tar-zxvfredis.tar.gz
7.3查看redis的文件夹发觉解压以后的src是redis的源码,须要先编译能够安装
redis是使用c语言开发的,须要使用c语言的编译命令
在redis目录下执行:make命令时,报错,缘由:系统中没有安装c语言的环境
1、安装c语言和c++的语言环境
yuminstall-ygcc
yuminstall-ygcc-c++
gcc-v
g++-v
查看是否安装成功
2、删除先前make形成的错误文件
makedistclean
3、再执行make进行编译
4、再执行安装命令:makeinstall
5、如果执行redis-server就能看见redis的启动界面,就代表redis安装成功
ctrl+c可以关掉redis-server
redis安装以后,命令储存在usr/local/bin下,命令可以在任意的地方执行
redis-server:redis服务端启动命令
redis-cli:redis顾客端启动的命令
8、修改redis为后台启动
redis默认前台启动(阻塞启动)
8.1在/下创建储存redis配置文件的文件夹
mkdir/myredis
8.2拷贝redis的配置文件到/myredis目录下
cp/opt/redis-4.0.0/redis.conf/myredis/
8.3编辑/myredis/redis.conf设置后台启动
vim/myredis/redis.conf
136行设置daemonize改为yes
保存退出
8.4指定配置文件启动redis服务
redis-server/myredis/redis.conf
服务端默认端标语:6379
8.5redis顾客端联接redis
redis-cli默认联接本机的6379端标语的redis服务端
ctrl+c退出redis-cli联接
redis-cli-h127.0.0.1-p6379:联接指定ip指定端口的redis服务
8.6关掉redis服务
在redis-cli的联接中,ctrl+c只会关掉redis顾客端
形式1:在linux命令中执行redis-cli-h127.0.0.1-p6379shutdown
形式2:假如在redis-cli的联接中shutdown
形式3:可以通过redis进程id杀害进程kill进程id
8.7redis简单使用+特征
redis默认有16个库。通常使用默认的索引为0的库:select0
dbsize:查看redis储存数据的条数
flushdb:清空当前库(慎用)
flushall:清空redis所有的库
内存数据库存储数据都是在内存中操作,内存操作速度非常快,每个命令执行时的时间短
Redis是单线程+多路IO复用技术
Memcached 是串行+多线程的方式
redis和Memcached三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用
9、redis-key操作
1、查看所有的键:keys*
2、判断某个键是否存在:exists键值
返回1代表存在,0代表不存在
3、查看键对应值的类型:type键值
4、删除指定的键(键在值在,键光值亡):del键值
5、给键设置过期时间:expire键值秒数
6、查看键的过期时间:ttl键值
返回>=0的数字,代表剩余数字对应的秒数
返回-2,代表键已过期被删掉
返回-1,代表键永不过期
10、redis-五大数据类型-string
redis最常使用的数据类型就是string类型:java对象可以转为字符串,图片也可以转为图片
redis中string类型的大小最大可以为512m,redis的字符串二补码安全
1、向redis中存入string通配符对:setkv
假如键相同,后设置的值会覆盖之前的
2、获取redis手指定键的值:getk
3、给redis手指定键的值追加内容:appendkappendStr
4、获取键的值的宽度:strlenkey
5、当键不存在时才设置通配符对:setnxkv
分布式锁
6、设置值自增1:incrk
假如k的值已存在,必须时整形才可以自增
假如k不存在,默认在0的基础上+1
应用场景:计数器、密码明天输错的次数、秒杀库存自减
7、设置值自减1:decrk
8、自定义步长增减:incrbykcount,decrbykcount
9、设置通配符对同时设置过期时间:setexkeysecodsval
使用场景:保存手机验证码
10、批量操作
1、批量存入多个键名对:msetkvkv....
2、批量获取多个键的值:mgetk1k2k3...
3、批量设置通配符对当键不存在时:msetnxk1v1k2v2...
当有一个键假如存在时,所有的数据都保存失败
所有的键都不存在时,才可以储存成功
redis命令具有原子性,命令执行时,必须成功或则失败
java中的i++是否是原子操作?
不是,执行时,分为三步:先获取i的变量的值,执行i++操作,将估算后的结果设置到显存中
i=0;两个线程分别对i进行++100次,值是多少?2~200
11、获取值指定范围内的内容:getrangekstartend
获取时,start和end索引都包含
end假如是-1代表获取到最后
12、替换字符串指定范围的内容:setrangekstartreplacestr
13、设置值并返回被替换的内容:getsetknewVal