JDK卸载无法重新安装
WIN+R打开运行,输入regedit,打开注册表,找到HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE,找到其中的Software,找到JavaSoft,然后删除注册表,或者是路径不对,更改JAVA路径
JSESSIONID
第一次访问服务器的时候,会在响应头里面看到Set-Cookie信息(只有在首次访问服务器的时候才会在响应头中出现该信息);浏览器会根据响应头的set-cookie信息设置浏览器的cookie并保存之;注意此cookie由于没有设置cookie有效日期,所以在关闭浏览器的情况下会丢失掉这个cookie。
当再次请求的时候(非首次请求),浏览器会在请求头里将cookie发送给服务器(每次请求都是这样)
事实上当用户访问服务器的时候会为每一个用户开启一个session,浏览器是怎么判断这个session到底是属于哪个用户呢?jsessionid的作用就体现出来了:jsessionid就是用来判断当前用户对应于哪个session。换句话说服务器识别session的方法是通过jsessionid来告诉服务器该客户端的session在内存的什么地方。
Navicat读取sql脚本
1.navicat 运行sql文件 —每个运行中运行多重查询
记得一定要勾选上 run multiple queries in each execution.(每个运行中运行多重查询) , 可能是由于数据库版本不同造成的问题
2.set autocommit =0
mysql如果开了set autocommit=0,那么所有的语句一定是在一个事务里,在这种情况下,如果使用连接池,并且在查询之前没有rollback或者set autocommit=1,那么你就杯具了。因为根据mysql的默认事务级别,一致性读,你永远也取不到这个事务被开户前的数据。另外一点set autocommit= 0,会自动提交前一个事务,因此正确的作法是rollback, set autocommit =0,完成之后再set autocommit = 1;
oracle的sql语句
cascade constraints
在删除主键约束时使用cascade关键字可以删除参照该列的那些外键和使用on delete cascade关键字来级联删除参照该关键字的数据。使用cascade constraint在删除列的同时删除约束。例如主键约束等等。
利用Drop table cascade constraints可以以删除关联table t的constraint来达成你drop table t的目的,原来属于t1的foreign key constraint已经跟随着被删除掉了,但是,储存在table t1的资料可不会被删除,也就是说Drop table cascade constraints 是不影响到存储于objec里的row data。
总的来说,对于那些处于包含了多个列的约束中的列的删除,我们一定要使用cascade constraint关键字,否则没有必要,虽然使用了也是没有错误的。
drop和delete
drop可以用来删除表结构,删除表的时候会把表删掉然后重建
delete是删除表的数据
Mysql新建用户和授权
创建用户
命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username:你将创建的用户名
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
授权
命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如 * . *
Mysql重置密码
1.修改MySQL的登录设置:
vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。
2.重新启动mysqld
/etc/init.d/mysqld restart ( service mysqld restart )
3.登录并修改MySQL的root密码
mysql> USE mysql ;
mysql> update mysql.user set authentication_string=password('root') where user='root' ;
mysql> flush privileges ;
mysql> quit
use mysql;
mysql5.7高版本密码错误重置密码password改为authentication_string
update mysql.user set authentication_string=password('root') where user='root' ;
关于需要JAVA环境的软件
一定要注意JDK版本
清除tomcat的catalina.out日志
第一步,找到它,使用find命令
find / -type f -name "catalina.out"
下面会显示
/目录/……/目录/catalina.out
第二步,清空,使用echo命令
echo -n "" > /目录/……/目录/catalina.out
第三步,查看结果
du -h /目录/……/目录/catalina.out
tomcat乱码解决
1.tomcat编码
tomcat启动时默认使用系统编码,可更改tomcat bin目录下catalina.bat文件,在代码最上面加入
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF8
2.控制台编码
1、修改cmd的编码格式
快捷键win+R打开运行程序,输入regedit打开注册表,找到以下路劲并且修改。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor],新建一个字符串值,key-value如下:
"autorun"="chcp 65001",之后重新打开cmd即可。
2、修改Tomcat bin目录下startup.bat文件
将call "%EXECUTABLE%" start %CMD_LINE_ARGS% 改为 call "%EXECUTABLE%" run %CMD_LINE_ARGS%
3、修改Tomcat bin目录下catalina.bat文件
将set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
改为:set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8"
使用Anaconda管理多个版本的Python环境
1.首先确保你的系统里已经安装了Conda,打开CMD窗口,执行命令:conda --version
2.查看你的系统当前已有的Python环境,执行命令:conda info --envs
3.想添加一个Python2.7的环境,执行命令:conda create --name python27 python=2.7,命令中我制定了环境名称是python27,指定了Python版本是2.7,执行命令后,Conda会自动下载最新版的Python2.7,并自动部署
4.再次查看你的系统当前已有的Python环境,执行命令:conda info --envs,多了一个名字为python27的Python环境
5.查看我们当前使用的Python版本,执行命令:python --version
6.切换Python环境到刚才新添加的Python2.7,执行命令:activate python27,然后执行命令:python --version,查看是否切换成功
7.在Python27环境下,完成工作后,切回原来的Python环境,执行命令:deactivate python27
8.如果刚才添加的Python27环境,不再使用,可通过执行命令:conda remove --name python27 --all,进行删除
执行Python出现LookupError: unknown encoding: cp65001
在命令行输入chcp 1252
pycharm执行控制台乱码
setting——>Editor——>File Encodings——>Global Encoding:GBK
(JDBC驱动包)Jmeter连接Mysql
链接:http://pan.baidu.com/s/1cpfyc2 密码:d81w
链接: https://pan.baidu.com/s/1VyxerAkqVKk23RmGFAP9vA 提取码: dvgu
关于新建步骤操作失败的问题
项目用到多个redis,其中某个包用到的redis可能已经死掉了,但是启动项目的时候并不会报错,解决该问题的思路是确保redis运行并且三个war包中的配置文件中的redis端口相同
paramiko启动项目404
sshconnect.exec_command('export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171;sh /opt/tomcat-BH/tomcat-byxj/bin/startup.sh')
要在启动命令前面声明环境变量
更换Jmeter更高版本时踩得坑
1.注意拖到桌面上的应该是jmeter.bat的快捷方式,不要复制
2.记得更改系统环境变量
3.配置文件中的一些内存设置
set HEAP=-Xms512m -Xmx512m
set NEW=-XX:NewSize=512m -XX:MaxNewSize=4096m
正则表达式u、r、b修饰符
-
u/U:表示unicode字符串
不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。
一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。
建议所有编码方式采用utf8 -
r/R:非转义的原始字符串
与普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。而如果是以r开头,那么说明后面的字符,都是普通的字符了,即如果是“\n”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。
以r开头的字符,常用于正则表达式,对应着re模块。 -
b:bytes
python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前缀代表的就是bytes
python2.x里, b前缀没什么具体意义, 只是为了兼容python3.x的这种写法
正则匹配中文
pattern = re.compile(u'[\u4e00-\u9fa5]+')
re.findall(pattern,f.read())
谷歌浏览器驱动下载地址
http://10.10.171.171/webRoot/userAuth/blackUrl.html
Git常用命令
git init:将当前目录变成一个Git可以管理的仓库
git add filename: 将文件添加到Git仓库(把文件修改添加到暂存区)注:filename是要提交的文件的名字
git commit -m "备注内容": 将文件提交到仓库(把暂存区的所有内容提交到当前分支)例:git commit -m "本次提交修改了XXX部分代码"
git status: 查看当前仓库状态(仓库下的工作区文件是否被修改过)
git remote add origin git@server-name:path/repo-name.git 关联一个远程仓库,如:$ git remote add origin git@github.com:ChrisLeejing/learngit.git
git push -u origin master: 第一次推送master分支的所有内容
git pull --rebase origin master: 推送之前,进行合并
git clone git@github.com:ChrisLeejing/gitskills.git 以SSH方式克隆
git clone https://github.com/ChrisLeejing/gitskills.git 以Https协议方式克隆
git branch: 查看所有分支(当前分支以‘*’标记)
git branch <name>: 创建分支(如:git branch dev)
git checkout <name>: 切换分支
git checkout -b <name>: 创建切换分支(如:git checkout -b dev)
git merge <name>: 合并分支到当前分支上
Nginx+Tomcat集群
nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。Nginx百度百科
正向代理
当我们需要访问一下外国网站时由于一定的原因,无法正常访问,此时找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息
反向代理
反向代理的处理方式,例如某宝网站,每天同时连接到网站的访问人数已经爆表,单单个服务器不能满足用户访问量的要求,就出现分布式部署;也就是用户访问URL时,nginx通过一定的规则把用户的请求分发到不同的服务器上,实现负载均衡。
实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
idea光标变粗
打开设置面板(File->Settings或者快捷键Ctrl+Alt+S),找到Plugins,查找IdeaVim,将复选框的勾去掉,应用,软件重启就好了
Anaconda环境变量配置
D:\Anaconda\
D:\Anaconda\Scripts
D:\Anaconda\Library\bin
java安装时javac命令失效
按这篇文章进行
https://www.cnblogs.com/smyhvae/p/3788534.html
一:系统变量->新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)注意:后面不要跟分号
二、系统变量->变量名"Path"->“编辑”->“新建”两个变量
“%JAVA_HOME%\bin”,“%JAVA_HOME%\jre\bin”
三、系统变量->新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
本地安装rabbitmq
安装过程中无法启动rabbitmq_service,经过百度发现是erlang注册表的问题,清空注册表重新安装即可,附上链接
https://blog.csdn.net/wuyufeng891021/article/details/85271911
https://blog.csdn.net/linsongbin1/article/details/80170567
解决Redis错误MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persi...
原因
强制关闭Redis快照导致不能持久化。
解决方案
进入服务器后
将stop-writes-on-bgsave-error设置为no
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
无法访问github
关于hosts文件,其作用是包含IP地址和host name(主机名)的映射关系。windows系统下路径为C:\Windows\System32\drivers\etc\hosts,linux系统下为/etc/hosts,没有的话就自己创建一个记事本文件,再把格式后缀删掉,修改时以记事本方式打开即可。
在hosts文件中添加以下内容保存即可
192.30.253.112 github.com
192.30.253.119 gist.github.com
151.101.100.133 assets-cdn.github.com
151.101.100.133 raw.githubusercontent.com
151.101.100.133 gist.githubusercontent.com
151.101.100.133 cloud.githubusercontent.com
151.101.100.133 camo.githubusercontent.com
151.101.100.133 avatars0.githubusercontent.com
151.101.100.133 avatars1.githubusercontent.com
151.101.100.133 avatars2.githubusercontent.com
151.101.100.133 avatars3.githubusercontent.com
151.101.100.133 avatars4.githubusercontent.com
151.101.100.133 avatars5.githubusercontent.com
151.101.100.133 avatars6.githubusercontent.com
151.101.100.133 avatars7.githubusercontent.com
151.101.100.133 avatars8.githubusercontent.com
JDK卸载和彻底删除
打开控制面板,点击卸载程序,找到如:java 8 update 171(64-bit);java SE Development Kit8 update 171(64-bit)类似的程序,点击卸载。然后在“运行”中输入Regedit,打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft ,将JavaSoft文件夹及其子目录全部删除。
443端口
fiddler抓包时发现域名后面都有443端口号,443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息,其他人抓包获取到的是加密数据,保证了交易的安全性。网页的地址以https://开始,而不是常见的http://
Fiddler保存乱码问题
点击菜单栏的Decode即可解决
ubuntu镜像下载地址
https://www.bilibili.com/video/BV1sJ411s7rF?from=search&seid=13636557815410940052
Python读取Excel
xlrd打开目标excel的时候,走到with open会报错是因为路径是从windows复制过去的,可能多复制或者少复制了一些看不到的内容。推荐手写。
VirtualBox无法创建新任务
卸载重装,不要和其他软件安装在同一个目录中,必须单独在一个目录。
mysql报错:ERROR 1130 (HY000): Host 'SK-20200630OJUZ' is not allowed to connect to this MySQL server
可能是因为本地安装了不同版本的MySQL,8.0版本的密码加密方式和5.0版本的不同,导致无法连接。
Redis:Killing still running Redis server xxx
解决办法:
vim tests/integration/replication-psync.tcl
把after 后面的值设置为1000,然后重新make test
Redis:连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots
解决办法:
vim redis.conf
修改config set stop-writes-on-bgsave-error配置的值为no
Pycharm的Input函数遇到断点无法执行
解决方法:Run--->Edit Configurations--->Run with Python Console勾选上即可。
Linux登录后变成-bash-4.2
cp /etc/skel/.bash* /root/
Charles捕捉本地tomcat请求无效
在请求地址的localhost后加上.charlesproxy.com,如localhost:8080修改为http://localhost.charlesproxy.com:8080/