0%

前言

​ 最近在维护一个老的JavaWeb项目,mvc架构,启动后控制台无任何输出,日志框架集成的时log4

j,但是只有发生异常才打印,最近项目上发生一个奇怪的问题,分析代码实在看不出有我问题,所以在关键地方加了很多日志输出,但是还是不能直观的看出插入数据库的数据,导致还是没有定位到问题,想到能不能集成slf4j,一顿操作发现太麻烦,还是不能打印sql,所以还是使用现在的日志框架,开启sql打印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#在log4j.properties中配置如下信息
log4j.rootLogger = DEBUG, stdout, D,F,E # debug输出到控制台,也输入到文件

#配置debug输出信息
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = C://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} [ %t:%r ] - [ %p ] %m%n


log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

#关键配置,配置sql打印输出
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

以上配置后,终于能打印sql了

前言

最近在用到location的时候发现这块配置很微妙,需要记录下

1
2
3
4
5
6
#第一种情况 /proxy/ 后面更上/,代表完全匹配,如访问/proxy123/,则匹配失败
location /proxy/ {
proxy_pass http://127.0.0.1:8001/;
}
#proxy_pass 最后跟上/线,真实访问路径:http://test.com/
#proxy_pass 最后不跟上/线,真实访问路径:http://test.com/proxy

root和alias的区别

1
2
3
4
5
6
7
8
9
10
location  /test/ {
root /www/root/html/;
#寻找位置:/www/root/html/test/index.html
}

location /test/ {
alias /www/root/html/;
#寻找位置:/www/root/html/index.html
}

所以两个最直观的区别就是 root会+location的路径,alias不会

403问题

​ 有时访问会出现403

  • 首先确认nginx是否root用户,在/etc/nginx/nginx.conf中修改 user root;
  • 其次确认访问的路径权限是否777,使用命令修改chmod -R 777 /test,递归修改目录下所有文件权限

前言

​ 最近项目中有个需求,就是将usb摄像头的mjpeg流转为mp4视频格式,记录一下过程中用到的一些命令,ffmpeg的基础使用命令请自行学习,本文不在赘述

命令
  1. 将多张图片转为mp4格式

    1
    2
    3
    #-i 标识从哪里输入 -c:v copy264格式的流,8线程 b:600k码率(码率越高,视频越大) 输出mp4格式
    #图片命名格式image0001.jpg,image0002.jpg,可自行更改
    ffmpeg -i image%04d.jpg -c:v libx264 -threads 8 -b 600k -preset veryslow -crf 25 out.mp4
  2. 将mjpeg流转为flv格式的视频

    1
    2
    #可直接输入usb的视频地址
    ffmpeg -f mjpeg -i http://192.168.1.1:8080/?action=stream -f flv -vcodec flv -q 10 D:/input.flv
  3. 将mp4格式转为ts

    阅读全文 »

一、前言

​ 我们正常的使用云服务等不会遇到离线挂载的问题,但在公司实际项目中,客户现场环境是不允许服务器接入互联网的,但是往往安装各类rpm包时需要各种依赖,未接入互联网时,会下载依赖失败,所以我们需要自己制作一个离线yum源

二、系统版本查看

查看系统版本信息,离线挂载源需要是同系统同版本才可以

1
cat /etc/centos-release # 查看系统信息
三、下载iso镜像
阅读全文 »

前言

​ 不论是微服务或是android编译使用到gradle时,需要取仓库拉取依赖jar,一般官方仓库都在国外,所以格外的慢,为了加快速度,需要设置代理

  1. 指定项目设置代理,在项目下的gradle-wrapper.properties里设置

  2. 在userdir,一般在c盘user下,.gradle/gradle.properties

  3. 将以下配置写入到以上文件中

    阅读全文 »

因为众所周知的原因,git拉取github代码经常会失败,那么需要设置下代理
  1. http、https代理的设置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    //设置全局代理
    //http
    git config --global https.proxy http://127.0.0.1:1080
    //https
    git config --global https.proxy https://127.0.0.1:1080
    //使用socks5代理的 例如ss,ssr 1080是windows下ss的默认代理端口,mac下不同,或者有自定义的,根据自己的改
    git config --global http.proxy socks5://127.0.0.1:1080
    git config --global https.proxy socks5://127.0.0.1:1080

    //只对github.com使用代理,其他仓库不走代理
    git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
    git config --global https.https://github.com.proxy socks5://127.0.0.1:1080
    //取消github代理
    git config --global --unset http.https://github.com.proxy
    git config --global --unset https.https://github.com.proxy

    //取消全局代理
    git config --global --unset http.proxy
    git config --global --unset https.proxy
  2. ssh协议

    阅读全文 »

本文列出以下服务的安装教程mysql、reids、nginx、nacos、minio

一、docker安装mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
#以下命令可安装最新8+版本
docker pull mysql:latest

#如果要指定安装,请到docker hub仓库搜索指定版本 https://hub.docker.com/_/mysql
#比如需要安装5.7.38版本,则命令为
docker pull mysql:5.7.38

#镜像拉取完成后再启动容器
docker run -itd --restart always --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql --lower-case-table-names=1

# mysql-test 指定容器名称 MYSQL_ROOT_PASSWORD 为 root密码,安装后可直接连接
# --lower-case-table-names=1 标识数据库名、字段等忽略大小写
# 注意: mysql8在数据库启动之前就需要改变该字段,否则后期无法改变,mysql5则可以随时配置

==docker 拉取镜像慢,解决办法==

阅读全文 »

一、基础命令

1
2
docker info  #docker的详细信息,包括容器和镜像
docker version #docker版本信息

二、镜像相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
docker images #查看当前docker下的所有镜像信息信息
#列含义:
REPOSITORY#镜像仓库源
TAG#镜像的标签
IMAGE ID#镜像id
CREATED#创建时间
SIZE#大小

docker images -a #本地所有镜像
docker images -q #只打印镜像ID
docker images --no-trunc #打印镜像详细信息

docker search nginx #在dockerhub中搜索镜像
docker pull ngxin:latest #从hub仓库中拉去ngxin最新版本镜像

docker rmi ngxin #删除镜像,可以是镜像ID
docker rmi -f ngxin #强制删除,容器在运行有也可以
docker rmi -f ngxin tomcat #可删除多个镜像,空格隔开即可
docker rmi -f $(docker images -q) #删除本地所有镜像

三、容器相关命令

阅读全文 »

什么是explain

使用优化器可以模拟优化器执行SQL查询语句,从而知道MySQL怎么处理你的SQL语句的,分析你的查询语句和表结构的性能瓶颈。

explain能够干什么

  • 读取表的顺序

  • 哪些索引能够被使用

  • 数据读取操作的操作类型

  • 哪些索引能够被实际使用

  • 表之间的引用

  • 每张表有多少行被物理查询

    阅读全文 »

markdown语法

下面介绍你种常用的语法,详细使用请参照后面的几个连接。

1、标题:

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

2、列表:
无语列表:

- 文本1
- 文本2
- 文本3

有序列表:

  1. 文本1
  2. 文本2
  3. 文本3
阅读全文 »