java命令
2020-11-06 09:23:11 11 举报
AI智能生成
微服务命令总结
作者其他创作
大纲/内容
fastdfs
docker搭建fastdfs
yum -y install docker<br>
下载docker
systemctl start docker <br>
启动docler
systemctl enable docker
开机自启
docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=服务器ip -e WEB_PORT=8888 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
挂载在容器上<br>
docker exec -it fastdfs /bin/bash
进入容器<br>
echo "Hello FastDFS!">index.html
创建文件<br>
fdfs_test /etc/fdfs/client.conf upload index.html<br>
测试文件上传<br>
端口开放8888 22122-24000<br>
springboot文件上传<br>
配置application.yml
fdfs:<br> so-timeout: 2500 # 读取时间<br> connect-timeout: 600 # 连接超时时间<br> thumb-image: # 缩略图<br> width: 100<br> height: 100<br> tracker-list: # tracker服务配置地址列表<br> - 服务器ip:22122<br>
upload:<br> base-url: http://服务器ip:8888/<br> allow-types:<br> - image/jpeg<br> - image/png<br> - image/bmp<br> - image/gif
pring:<br> servlet:<br> multipart:<br> max-file-size: 2MB<br>
redis
redis的安装<br>
yum install gcc-c++<br>
安装gcc 目地是编译软件<br>
tar -zxvf redis-5.0.7.tar.gz
解压<br>
cp -r /root/software/redis-5.0.7 /usr/local/src/redis
把解压的文件copy到/usr/local/src里面<br>
make hiredis lua jemalloc linenoise
进行编译依赖项<br>
cd /usr/local/src/redis<br>
make
进行编译<br>
mkdir /usr/local/redis<br>make install PREFIX=/usr/local/redis
在上面的Redis目录安装把它安装到/usr/local/redis里面<br>
cd /usr/local/redis/bin
ls
启动文件即安装成功<br>
which redis-server
查看系统里面是否有redis的服务<br>
mkdir /usr/local/redis/conf
创建一个配置文件的目录<br>
cp /usr/local/src/redis/redis.conf /usr/local/redis/conf
复制一个原始的配置文件
cd /usr/local/redis/bin
./redis-server /usr/local/redis/conf/redis.conf <br>
启动redis服务端
vim /usr/local/redis/conf/redis.conf<br>
修改原始配置文件进行后台启动
cd /usr/local/redis/bin<br>
./redis-cli 默认是-h 127.0.0.1 -p 6379
启动客户端<br>
ping
pong
正常连接
./redis-cli shutdown
停止redis
vim /etc/rc.local
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf<br>
设置开机自启
bin目录<br>
<p class="MsoNormal"><span style="font-size: 9pt;">redis-benchmark</span></p>
redis性能测试工具
redis-check-aof
检查aof日志的工具
redis-check-rdb
检查rdb日志的工具
redis-cli
连接用的客户端
redis-server
:redis服务进程
子主题<br>
redis配置
daemonize:
如需要在后台运行,把该项的值改为yes
<p class="MsoNormal"><span style="font-size: 9pt;">pdifile:</span></p>
把pid文件放在/var/run/redis.pid,可以配置到其他地址
<p class="MsoNormal"><span style="font-size: 9pt;">bind:</span></p>
指定redis只接收来自该IP的请求,如果不设置0.0.0.0,那么将处理所有请求,在生产环节中最好设置该项
<p class="MsoNormal"><span style="font-size: 9pt;">port</span></p>
监听端口,默认为6379
<p class="MsoNormal"><span style="font-size: 9pt;">timeout:</span></p>
设置客户端连接时的超时时间,单位为秒
<p class="MsoNormal"><span style="font-size: 9pt;">loglevel:</span></p>
等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
<p class="MsoNormal"><span style="font-size: 9pt;">logfile:</span></p>
配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:<br>
设置数据库的个数,默认使用的数据库是0
save:
设置redis进行数据库镜像的频率
<p class="MsoNormal"><span style="font-size: 9pt;">rdbcompression:</span></p>
在进行镜像备份时,是否进行压缩
dbfilename:
镜像备份文件的文件名
dir:
数据库镜像备份的文件放置的路径
slaveof:
设置该数据库为其他数据库的从数据库
masterauth:
当主数据库连接需要密码验证时,在这里设定
requirepass:<br>
设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:
限制同时连接的客户端数量
<p class="MsoNormal"><span style="font-size: 9pt;">maxmemory:</span></p>
设置redis能够使用的最大内存
appendonly:<br>
开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:
设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持<br>vm_swap_file:设置虚拟内存的交换文件的路径<br>vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0<br>vm_page_size:设置虚拟内存页的大小<br>vm_pages:设置交换文件的总的page数量<br>vm_max_thrrads:设置vm IO同时使用的线程数量
redis命令
<p class="MsoNormal">select index<b><span style="font-size: 9pt;"><br></span></b></p>
命令切换数据库
dbsize
查看当前数据库的key的数量
flushdb:
清空当前库
Flushall;
通杀全部库
keys * 获取当前库所有的key<br> select index 选择第index个库<br> move k1 1 将当前的数据库key移动到某个数据库,目标库有,则不能移动<br> flushdb 清空当前库<br> randomkey 从当前数据库中随机返回<br> type key 类型<br> del key1 删除key<br> exists key 判断是否存在key<br>expire key 10 设置key的过期时间单位是秒<br>pexpire key 1000 设置key的过期时间单位是毫秒<br> persist key 删除过期时间<br> ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期<br>
string类型相关命令<br>
set key value 存放key-vulue <br> set name cxx 存放key=name value=cxx<br> get name 获取key=name的值<br> getrange name 0 -1 字符串分段 0 -1是全部 0 -2 ==n-1<br> getset name new_cxx 设置值,返回旧值<br> mset key1 key2 批量设置<br> mget key1 key2 批量获取<br> setnx key value 不存在就插入(not exists)<br>setrange key index value 从index开始替换value<br>incr age 递增<br>incrby age 10 递增<br>decr age 递减<br>decrby age 10 递减<br>incrbyfloat 增减浮点数<br>append 追加<br>strlen 长度<br>object encoding key 得到key 的类型 string里面有三种编码<br>int 用于能够作用64位有符号整数表示的字符串<br>embstr 用于长度小于或等于44字节 Redis3.x中是39字节,这种类型的编码在内存使用时性能更好<br>raw 用于长度大于44字节的<br>
list【集合数组】
lpush key values l=left r =rigth <br>lpush mylist a b c 左插入<br> rpush mylist x y z 右插入<br> lrange mylist 0 -1 取出数据集合 0 -1是取出所有 0 1取第第一个和第二个<br> lpop mylist 弹出集合最后一个元素 弹出之后就没有了哦<br> rpop mylist 弹出第一个元素 弹出之后就没有了哦<br> llen mylist 长度 <br> lrem mylist count value 删除<br> |-COUNT 的值可以是以下几种:<br> |--count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。<br> |--count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。<br> |--count = 0 : 移除表中所有与 VALUE 相等的值。<br> lindex mylist 2 指定索引的值<br> lset mylist 2 n 索引设值<br> ltrim mylist 0 4 <br> |--对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。<br> 下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 <br> 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。<br> linsert mylist before a 插入<br> linsert mylist after a 插入<br> |--命令用于在列表的元素前或者后插入元素。 当指定元素不存在于列表中时,不执行任何操作。 <br> 当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误。<br> rpoplpush list list2 转移列表的数据<br> |--命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。<br>
hash Map<String,Map<String,Object>>
hset myhash name cxx<br> |--命令用于为哈希表中的字段赋值 。<br> |--如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。<br> |--如果字段已经存在于哈希表中,旧值将被覆盖。<br> hget myhash name <br> hmset myhash name cxx age 25 note "i am notes"<br> hmget myhash name age note <br> hgetall myhash 获取所有的<br> hexists myhash name 是否存在<br> hsetnx myhash score 100 设置不存在的 如果存在,不做处理<br> hincrby myhash id 1 递增<br> hdel myhash name 删除<br> hkeys myhash 只取key<br> hvals myhash 只取value<br> hlen myhash 长度<br>
set
sadd myset redis <br> smembers myset 数据集合<br> srem myset set1 删除<br> sismember myset set1 判断元素是否在集合中<br> scard key_name 个数<br> sdiff key1 key2 …… | sinter | sunion 操作:集合间运算:差集 | 交集 | 并集<br> srandmember key count 随机获取集合中的元素<br> spop 从集合中弹出一个元素<br>
zset
zadd zset 1 one<br> zadd zset 2 two<br> zadd zset 3 three<br> zincrby zset 1 one 增长分数<br> zscore zset two 获取分数<br> zrange zset 0 -1 withscores 范围值<br> zrangebyscore zset 10 25 withscores 指定范围的元素<br> zrangebyscore zset 10 25 withscores limit 1 2 分页<br> Zrevrangebyscore zset 10 25 withscores 指定范围的值<br> zcard zset 元素数量<br> zcount zset 获得指定分数范围内的元素个数<br>
redis相关类型
.字符串类型Map<String,String><br>
list数据类型Map<String,List<Object>>
hash数据类型Map<String,Map<String,Object>><br>
set数据类型Map<String,Set<Object,Object>>
zset(sortset)数据类型
redis.conf
Units单位
配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit<br>
对大小写不敏感<br>
INCLUDES包含
NETWORK网络
bind <br>
<p class="MsoNormal" style="line-height:20.4000pt;"><span style="color: rgb(0, 0, 0); font-size: 9pt;">prot运行端口</span><span style="color: rgb(0, 0, 0); font-size: 9pt;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color: rgb(0, 0, 0); font-size: 9pt;">Tcp-backlog</span></p><br>
Tcp-backlog
<p class="MsoNormal" style="line-height:20.4000pt;"><span style="color: rgb(0, 0, 0); font-size: 9pt;">tcp-keepalive 300</span><span style="color: rgb(0, 0, 0); font-size: 9pt;"><o:p></o:p></span></p>
GRNERAL通用<br>
daemonize no <br>
是否以守护模式启动,默认为no,配置为yes时以守护模式启动,这时redis instance
supervised no
可以通过upstart和systemd管理Redis守护进程,这个参数是和具体的操作系统相关的。
pidfile /var/run/redis_6379.pid 配置pid文件路径。<br>
当redis以守护模式启动时,如果没有配置pidfile,pidfile默认值是/var/run/redis.pid
loglevel notice
日志级别。可选项有:debug(记录大量日志信息,适用于开发、测试阶段); verbose(较多日志信息); notice(适量日志信息,使用于生产环境);warning(仅有部分重要、关键信息才
日志级别
debug(记录大量日志信息,适用于开发、测试阶段);
verbose(较多日志信息);
notice(适量日志信息,使用于生产环境);
warning(仅有部分重要、关键信息才
syslog-enabled no <br>
是否把日志记录到系统日志。<br>
syslog-ident <br>
设置系统日志的id 如 syslog-ident redis
databases 16 <br>
设置数据库的数目。默认的数据库是DB 0 ,可以在每个连接上使用select <dbid> 命令选择一个不同的数据库,dbid是一个介于0到databases - 1 之间的数值。
always-show-logo yes
是否一直显示日志
SNAPSHOTTING快照
save <br>
保存数据到磁盘。格式是:save <seconds> <changes> ,含义是在 seconds 秒之后至少有 changes个keys 发生改变则保存一次。
save 900 1 900秒有一条数据改变就保存<br>
save 300 10 300秒有10条数据改变就保<br>
save 60 10000 600秒有10000条数据改变就保存
stop-writes-on-bgsave-error yes
子主题
默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 否则就会没人注意到灾难的发生。 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
rdbcompression yes
是否在dump .rdb数据库的时候压缩字符串,默认设置为yes。如果你想节约一些cpu资源的话,可以把它设置为no,这样的话数据集就可能会比较大。<br>
rdbchecksum yes <br>
是否CRC64校验rdb文件,会有一定的性能损失(大概10%)
dbfilename dump.rdb <br>
rdb文件的名字。
dir ./
数据文件保存路径指redis.conf配置文件所在的路径
SECURITY安全
cofig get requirpass<br>
获取密码
cofig set requirpass = ”123456“
auth:123456
LIMITS限制
maxmemory-policy
allkeys-lru<br>
加入键的时候,如果过限,首先通过LRU算法驱逐最久没有使用的键
volatile-lru
加入键的时候如果过限,首先从设置了过期时间的键集合中驱逐最久没有使用的键
volatile-lfu:<br>
从所有配置了过期时间的键中驱逐使用频率最少的键
allkeys-lfu:
从所有键中驱逐使用频率最少的键
redis持久化
RDB<br>
<p class="MsoNormal"><span style="font-size: 9pt;">dump.rdb</span></p><br>
优点
适合恢复大量的数据
缺点
但有可能会丢失数据
AOF<br>
appendonly.aof 在配置文件中要开启
优点
数据持久化比较文档 只可能会丢失一秒钟的数据
缺点
没执行一次命令都会写入文件上 文件会过大 恢复时间长
redis的复制
主从复制
①拷贝多个redis.conf文件 <br>②开启daemonize yes<br>③Pid文件名字 <br>④指定端口<br>⑤Log文件名字【可以不配置】<br>⑥Dump.rdb名字
缺点
主机down了 必须手动指定主机
角色
master
一个
可读可写
slave
多个
可读
哨兵模式
主机挂了 投票新选 会有从机自动顶上
集群
cd /sur/local/redis_cluster
准备一个redis-server
创建多个redis 修改端口 配置文件 cluster-enabled yes 开启集群 appendonly yes 打开aop持久化<br>
同时启动所有redis
docker pull inem0o/redis-trib
下载镜像
docker run -it --net host inem0o/redis-trib create --replicas 1 <br> 47.105.128.151:7000 47.105.128.151:7001 <br> 47.105.128.151:7002 47.105.128.151:7003 <br> 47.105.128.151:7004 47.105.128.151:7005
info replication<br>
查看角色
docker部署redis
docker run -d --name redis -p 6390:6379 redis --requirepass "123456"
springboot集成redis+注解
application.yml
redis:<br> host: 47.105.128.151<br> port: 6390<br> password: 123456<br> jedis:<br> pool:<br> max-active: 20<br> max-idle: 8<br> min-idle: 0<br> max-wait: 5000<br>
注解
CacheEvict<br>
删除
Cacheput
修改 和 添加
Cacheable
查看
EnableCaching
开启缓存
zookeeper
安装
yum -y install openjdk-1.8.0
配置java环境变量<br>
<p class="MsoNormal"><span style="font-size: 9pt;">tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local</span><span style="font-size: 9pt;"><o:p></o:p></span></p>
#解压到/usr/local下面
cd /usr/local/
#进入目录<br>
mv zookeeper-3.4.14/ zookeeper<br>
#修改名字<br>
<p class="MsoNormal"><span style="font-size: 9pt;">cd /usr/local/zookeeper/conf</span></p>
#打开zk的配置文件目录
<p class="MsoNormal"><span style="font-size: 9pt;">mv zoo_sample.cfg zoo.cfg</span></p>
#修改zoo_sample.cfg 为zoo.cfg [一定要改]
vim zoo.cfg
#编辑zoo.cfg<br>
./zkServer.sh start<br>
#启动<br>
<p class="MsoNormal"><span style="font-size: 9pt;">./zkServer.sh stop</span><span style="font-size: 9pt;"><o:p></o:p></span></p>
#停止<br>
./zkServer.sh status<br>
查看zk的运行状态
znode
PERSISTENT-持久化目录节点 客户端与zookeeper断开连接后,该节点依旧存在<br>
PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号<br>
EPHEMERAL-临时目录节点 客户端与zookeeper断开连接后,该节点被删除<br>
EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点 客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号
节点操作
创建节点<br>
create [-s] [-e] path data acl<br>
查看节点内容
get /sanguo
更新节点内容<br>
set path data
删除节点
delete /<br>
zookeeper集群搭建
cd /usr/local/<br>makdir zk-cluster<br>cd zk-cluster<br>
.新建一个集群的文件夹及数据目录
cp<br>
准备三个zookeeper<br>
touch myid
vim zk1/conf/zoo.cfg<br>
Linux
常用基本命令<br>
ls -a 查看当前目录文件
--help 帮助命令<br>
tab 自动补全
Linux命令-文件管理
ls 查看文件信息<br>
cd 切换工作目录<br>
clear 清屏<br>
pwd 显示当前路径 <br>
mkdir 创建目录<br>
touch 创建文件<br>
cp 拷贝文件<br>
-R 复制目录<br>
cp -R [源文件或目录] [目的目录]
mv 移动[重命名]文件<br>
rm 删除文件<br>
-f 强制删除<br>
-r 删除文件夹<br>
cat 查看或合并文件<br>
>
先清空再追加
>>
直接追加<br>
ln 建立链接文件<br>
硬链接
ln 源文件 链接文件
软链接<br>
ln -s 源文件 链接文件<br>
find 文件搜索命令<br>
find [搜索路径] [搜寻关键字]
grep 文件搜索命令<br>
-v 显示不包含匹配文本的所有行(相当于求反)<br>
-n 显示匹配行及行号<br>
-i 忽略大小写
grep [-选项] ‘搜索内容串’文件名<br>
tar 解压<br>
-z 打包同时压缩
-x 解开档案文件<br>
-v 显示详细信息
-f 指定压缩后的文件名
tar -zxvf xxx.tar.gz -C ./dir1 #解压到指定目录<br>
unzip 归档管理<br>
unzip xxxx.zip
yum 安装<br>
-y 自动确认<br>
search 搜索<br>
install 下载<br>
yum -y install xxxx 下载<br>
用户、权限管理
whoami 查看当前用户<br>
who 查看登录用户<br>
exit 退出登录账户<br>
useradd 添加用户账号<br>
passwd 设置用户密码<br>
password + 用户
userdel 删除用户<br>
userdel -r (用户名)
su 切换用户<br>
加<b> "-"</b> 的就是同时切换到用户目录<br>
用户权限管理
cat /etc/group 查看有哪些用户组<br>
groupadd、groupdel 添加、删除组账号<br>
groups +用户 查看用户在那个组<br>
usermod -g 用户组 用户名 修改用户所在组<br>
chmod 修改文件权限
字母法
数字法 chmod +(1-6的三位数字)<br>
4 -------------r
2 -------------w<br>
1 ---------------x
字·母含义
r 可读
w 可写
x 可执行
chown 修改文件所有者<br>
chown + 用户 +文件
chgrp 修改文件所属组 <br>
chgrp + 用户 +文件
系统管理<br>
cal 查看当前日历<br>
date 显示或设置时间<br>
date [MMDDhhmm[[CC]YY][.ss]] +format <font color="#c41230"> 需要管理员权限</font>
ps 查看进程信息<br>
-a 显示终端上的所有进程,包括其他用户的进程<br>
-u 显示进程的详细状态<br>
-x 显示没有控制终端的进程<br>
-r 只显示正在运行的进程<br>
ps -ef | grep java 查看当前正在运行的进程。
ps -aux | grep java 显示所有状态<br>
top 查看cpu使用率 是否被攻击<br>
kill 杀进程<br>
kill -9 加id
ifconfig 查看或配置网卡信息<br>
ping 测试远程主机连通性<br>
防火墙管理
firewall-cmd --state
查看防火墙状态 iptable未运行防火墙。
service iptables start
开启防火墙<br>
systemctl stop firewalld.service<br>
关闭防火墙<br>
systemctl disable firewalld.service <br>
禁止firewall开机启动<br>
vim/vi
i
插入文本
set:nu
设置行号
:n
到第n行
<font color="#5c5c5c">:%s/被替换的值/新值/g</font><br>
替换所有的值
:wq <br>
保存退出
:q!
不保存退出
安装JDK
yum search jdk<br>
yum -y instll java-1.8.0-openjdk<br>
mkdir /usr/local/java 创建一个存放jdk的文件<br>
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java 解压jdk到指定目录 <br>
cd /usr/local/java/jdk 进入jdk目录
vim /etc/profile 配置环境变量<br>
JAVA_HOME=/usr/local/java/jdk1.8.0_181<br>PATH=$JAVA_HOME/bin:$PATH<br>CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br>export JAVA_HOME<br>export PATH<br>export CLASSPATH<br>
source /etc/profile 刷新环境变量<br>
Java -version 查看jdk版本<br>
安装tomcat
mkdir /usr/local/tomca 创建存放文件
tar -zxvf apache-tomcat-8.5.43.tar.gz -C /usr/local/tomcat/ 解压<br>
cd /usr/local/tomcat 进入tomcat文件
mv apache-tomcat-8.5.43/ tomcat1 改名<br>
./tomcat1/bin/startup.sh 启动tomcat<br>
./tomcat1/bin/shutdown.sh 停止tomcat
安装mysql
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz<br>
#解压
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql
#重命名
cp -r mysql /usr/local
#复制解压后的mysql目录
cd /usr/local/mysql/ <br>
进入安装mysql软件目录
mkdir -p /data/mysql
创建数据仓库目录
groupadd mysql<br>
新建一个msyql组<br>
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql <br>
新建msyql用户禁止登录shell<br>
cd /usr/local/mysql
pwd<br>
chown -R mysql .<br>
chgrp -R mysql .
chown -R mysql /data/mysql<br>
改变目录属有者<br>
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
配置参数<br>
bin/mysql_ssl_rsa_setup --datadir=/data/mysql
安装<br>
cd /usr/local/mysql/support-files<br>
cp my-default.cnf /etc/my.cnf 这里没有话就跳过 去查看这个地址有没有my.cnf文件。如果就把权限改了 chmod 777 my.cnf<br>
cp mysql.server /etc/init.d/mysql3<br>
vim /etc/init.d/mysql<br>
basedir=/usr/local/mysql<br>
datadir=/data/mysql<br>
/etc/init.d/mysql start
启动mysql
chmod 777 /etc/my.cnf<br>
如果无法启动执行下面命令
/etc/init.d/mysql start
mysql -u root -p
<p class="MsoNormal"><span style="font-size: 9pt;"><font face="微软雅黑">登陆</font></span></p><br>
如果出现:-bash: mysql: command not found<br> --就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行<br>
修改密码
set password=password("123456") <br>
grant all privileges on *.* to 'root'@'%' identified by '123456';
flush privileges;<br>
设置root账户的host地址(<font color="#c41230"><b>修改了才可以远程连接</b></font>)
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile<br>
添加系统路径【为设置开机启动提供】<br>
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
配置mysql自启
nacat出现 1130 就是没有设置远程连接<br>
发布项目到tomcat
war包
排除tomcatjar包
修改war包为ROOT.war
jar包
nohup java -jar bills.jar >/root/bills/logs/bills8080.log &<br>
后台启动 输出日志
Nginx
安装nginx
yum install gcc-c++ <br>
安装
yum install -y pcre pcre-devel
PCRE安装<br>
yum install -y zlib zlib-devel
zlib安装<br>
yum install -y openssl openssl-devel
openssl安装<br>
tar -zxvf nginx-1.16.1.tar.gz<br>
#把解压nginx-1.16.1.tar.gz包
mv nginx-1.16.1 nginx
#修改文件夹的名字<br>
cp -r nginx /usr/local/src<br>
#把nginx拷贝到/usr/local/src里面
cd /usr/local/src<br>
进入目录
mkdir /usr/nginx
创建安装地址
cd /usr/local/src/nginx
指定安装路径<br>
./configure --prefix=/usr/nginx
子主题
make
编译
make install
安装
cd /usr/nginx
进入nginx
./sbin/nginx<br>
启动
./sbin/nginx -s stop<br>
停止
./sbin/nginx/ -s reload
配置文件改变时 刷新配置
Nginx基础配置<br>
cd /usr/nginx/conf<br>
vim nginx.conf<br>
添加
server {<br> listen 80;<br> server_name localhost;<br> location / { #资源地址<br> root html; <br> index index.html index.htm; #首页地址<br> }<br> }<br>
动静分离<br>
删除 webapps/ROOT/WEB-INF/classes/static的静态资源<br>
cd /usr/nginx/ 在nginx的安装目录下创建resources<br>
再把项目里面的static里面的内容放到nginx/resources里面
配置nginx/conf/nginx.conf
#动态分离的配置<br> location ~* \.(css|js|html)$ {<br> root resources;#可以使用相对路径和绝对路径 /usr/resources就是绝对路径<br> expires 7d;#有效天数<br> }<br><br> location ~* \.(avi|txt|png|gif|jpg|mp3|mp4|rmvb)$ {<br> root resources;<br> expires 20d;<br> }<br>
Docker
docker安装<br>
yum remove docker \<br> docker-client \<br> docker-client-latest \<br> docker-common \<br> docker-latest \<br> docker-latest-logrotate \<br> docker-logrotate \<br> docker-engine<br>
yum -y install gcc<br>
yum -y install gcc-c++<br>
yum install docker
systemctl start docker<br>
systemctl enable docker
开机自启
docker version
查看版本<br>
docker run hello-world<br>
测试运行 hello-world<br>
docker run -p 8080:80 -d docker.io/nginx
运行nginx<br>
systemctl stop docker
yum -y remover docker<br>
rm -rf /var/lib/docker
卸载docker<br>
配值镜像加速
vim /etc/docker/daemon.json<br>
{<br> "registry-mirrors": ["https://32xw0apq.mirror.aliyuncs.com"]<br>}
systemctl daemon-reload
刷新配置<br>
systemctl restart docker
重启docker<br>
docker命令
docker images <br>
列出所有镜像<br>
docker rmi -f 镜像id
根据镜像id删除镜像<br>
docker 镜像命令
docker images
列表本机上的镜像
docker seach
镜像搜索命令
docker pull
镜像下载命令
docker rmi 镜像删除命令
docker rmi -f $(docker images -aq)
删除所有镜像命令<br>
docker 容器命令
docker run -it -d -p 80:8080 --name="" 镜像名:tag/镜像id [命令or 参数]<br>
启动容器
docker ps
-a
查看正在运行的
-q
查看已经死亡的
docker rm -f $(docker ps -aq) <br>
删除所有运行和未运行的容器
exit:
停止容器并退出
ctrl+P+Q
容器不停止退出
<p class="MsoNormal"><span style="font-size: 9pt;">docker exec -i</span><span style="font-size: 9pt;">t</span><span style="font-size: 9pt;"> <font face="微软雅黑">容器</font>ID bash </span></p><br>
重新开启一个终端进入容器
docker attach 容器ID <br>
直接使用原来的终端进入容器
docker start|stop|restart 容器ID或容器名
启动停止重启容器<br>
docker kill 容器ID或容器名称<br>
强制停止容器<br>
docker logs 容器ID|名称
查看容器日志<br>
docker top 容器ID<br>
查看容器运行进程
docker inspect 容器ID|名称<br>
查询容器内部细节<br>
docker cp 容器ID(容器名称):容器内文件或文件夹路径 宿主机的路径
从容器中拷贝文件到主机
docker cp 宿主机的路径 容器ID(容器名称):容器内文件或文件夹路径
从主机拷贝文件到容器中
docker commit -m='新的镜像的描述信息' -a='作者' 容器ID 要创建的目标
自定义一个镜像
添加数据卷
docker run -it -v /宿主机目录:/容器内目录 centos /bin/bash<br>
添加数据卷<br>
docker inspect 容器ID
查看容器卷是否挂载成功<br>
查看Mounts的内容<br>
Dockerfile<br>
关键字<br>
FROM <br>
当前新镜像是基于哪个镜像的<br>
MAINTAINER
镜像维护者的姓名和邮箱地址
RUN <br>
容器构建时需要运行的命令
EXPOSE
当前容器对外暴露的端口[只是提示作用,
WORKDIR <br>
指定在创建容器后,终端默认登陆进来的工作目录
ENV <br>
用来在构建镜像过程中设置环境变量
ADD
将宿主机目录下的文件拷贝进镜像并且ADD命令会自动处理URL和解压tar包
COPY
类似ADD,拷贝文件和目录到镜像中
VOLUME
容器数据卷,用于数据保存和持久化工作
CMD <br>
指定一个容器启动时要运行的命令格式<br>
添加的命令会被替换
ENTEYPONT
指定一个容器启动时要运行的命令
在原基础上在加上命令
构建一个tomcat镜像
mkdir -p /mydocker/mytomcat
#创建目录<br>
cd /mydocker/ mytomcat
touch Dockerfile<br>
vim Dockerfile
FROM centos<br>#作者<br>MAINTAINER zyj<361072775@qq.com><br>#拷贝tomcat jdk 到镜像并解压<br>ADD apache-tomcat-8.5.30.tar.gz /usr/local/tomcat<br>ADD jdk-8u202-linux-x64.tar.gz /usr/local/jdk<br>#定义交互时登录路径<br>ENV MYPATH /usr/local<br>WORKDIR $MYPATH<br>#配置jdk 和tomcat环境变量<br>ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_202<br>ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.30<br>ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.30<br>ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br>ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin<br>#设置暴露的端口<br>EXPOSE 8080<br>#运行tomcat<br>CMD ["catalina.sh","run"]<br>
docker build -t mytomcat:1.0
构建镜像
部署项目
docker cp application.yml bills:/root/bills/application.yml<br>
编写Dockerfile
FROM openjdk:8u181-jdk-alpine<br>#作者<br>MAINTAINER zyj<361072775@qq.com><br>#创建工作目录<br>RUN mkdir -p /root/myproject/<br>#把jar包添加到容器里去<br>ADD bills.jar /root/myproject/<br>#声明工作路径<br>ENV ROOT_DIR /root/myproject/<br>#指定工作目录<br>WORKDIR $ROOT_DIR<br>#查看当前路径<br>RUN pwd<br>#查看当前路径文件<br>RUN ls -lh<br>#设置暴露的端口<br>EXPOSE 8080<br>#运行tomcat<br>CMD ["java","-jar","bills.jar"]
<p class="MsoNormal"><span style="font-size: 9pt;"><font face="微软雅黑">修改好的</font>application.yml放到容器里面和jar包的同级目录</span><span style="font-size: 9pt;"><o:p></o:p></span></p>
重启docker 容器
0 条评论
下一页