启用https后部分电脑不能打开应用的问题定位及解决
启用https证书后,部分财务电脑用IE访问不了内部应用,其他浏览器正常,报错如下:
无法安全地连接到此页面
这可能是因为该站点使用过期的或不安全的 TLS 安全设置。如果这种情况持续发生,请与网站的所有者联系。
TLS 安全设置未设置为默认设置,这也可能导致此错误。
尝试此操作:
•返回到前一页
空杯心态,勿忘初心;但行好事,莫问前程。
启用https证书后,部分财务电脑用IE访问不了内部应用,其他浏览器正常,报错如下:
无法安全地连接到此页面
这可能是因为该站点使用过期的或不安全的 TLS 安全设置。如果这种情况持续发生,请与网站的所有者联系。
TLS 安全设置未设置为默认设置,这也可能导致此错误。
尝试此操作:
•返回到前一页
yum update更新完系统以后发现php7不能运行,访问nginx直接报502,tail查看nginx error log报错如下
2021/02/25 14:46:24 [crit] 1746#0: *6 connect() to unix:/usr/local/php7/var/run/php-cgi.sock failed (2: No such file or directory) while connecting to upstream, client: 10.8.118.36, server: zc.hongsin.cn, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/usr/local/php7/var/run/php-cgi.sock:", host: "xxx.xxxx.cn"
看样子是php-fpm没有运行,使用systemctl查看php-fpm服务
systemctl status php-fpm7
● php-fpm7.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm7.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 四 2021-02-25 14:48:12 CST; 4min 48s ago
Process: 26537 ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7/etc/php-fpm.conf (code=exited, status=127)
Main PID: 26537 (code=exited, status=127)
2月 25 14:48:12 wiki-cmdb systemd[1]: Started The PHP FastCGI Process Manager.
2月 25 14:48:12 wiki-cmdb php-fpm[26537]: /usr/local/php7/sbin/php-fpm: error while loading shared libraries: libonig.so.2: cannot open shared object file: No such file or directory
2月 25 14:48:12 wiki-cmdb systemd[1]: php-fpm7.service: main process exited, code=exited, status=127/n/a
2月 25 14:48:12 wiki-cmdb systemd[1]: Unit php-fpm7.service entered failed state.
2月 25 14:48:12 wiki-cmdb systemd[1]: php-fpm7.service failed.
关键信息:
2月 25 14:48:12 wiki-cmdb php-fpm[26537]: /usr/local/php7/sbin/php-fpm: error while loading shared libraries: libonig.so.2: cannot open shared object file: No such file or directory
查看php7版本:
/usr/local/php7/bin/php -V
/usr/local/php7/bin/php: error while loading shared libraries: libonig.so.2: cannot open shared object file: No such file or directory
看来就是libonig.so.2文件找不到的原因了,解决步骤:
安装对应组件,并做软连接
yum install oniguruma libsodium -y
ln -s /usr/lib64/libonig.so /usr/lib64/libonig.so.2
查看libonig.so库
ll /usr/lib64/libonig.so*
lrwxrwxrwx 1 root root 16 1月 4 17:42 /usr/lib64/libonig.so -> libonig.so.5.0.0
lrwxrwxrwx 1 root root 21 2月 25 14:57 /usr/lib64/libonig.so.2 -> /usr/lib64/libonig.so
lrwxrwxrwx 1 root root 16 1月 4 17:41 /usr/lib64/libonig.so.5 -> libonig.so.5.0.0
-rwxr-xr-x 1 root root 539352 5月 27 2020 /usr/lib64/libonig.so.5.0.0
启动php-fpm服务,查看版本号:
systemctl start php-fpm7
/usr/local/php7/bin/php -v
PHP 7.4.1 (cli) (built: Dec 27 2019 13:39:08) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
问题解决,应用恢复访问。
SQLServer2008R2在还原数据库的时候报错,“因为数据库正在使用,所以无法获得对数据库的独占访问权。”,如下图:
出现该问题的原因已经很明确了,就是有其他用户还在连接着数据库,可以先尝试重启数据库,如果还是如此的话,可采用下面方法:
在master中创建一个存储过程,用来断开和数据库的所有链接:
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--建一个存储过程,断开所有用户连接。
create proc [dbo].[killspid] (@dbname varchar(20))
as
begin
declare @sql nvarchar(500)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1
begin
exec('kill '+@spid)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end
GO
断开和库的所有链接:
use master
exec killspid '出问题的数据库名'
实际场景中可以开启防火墙,只允许本机访问数据库,然后执行这个存储过程即可正常进行各种操作;
不建议使用更改数据库为单用户模式,仍然会有类似提示,如下图:
PyCharm支持配置自定义文件模板和代码模板,配置后每次新建文件均会自动填充模板内容,如:作者信息等。
设置路径
“PyCharm”→“File”→“Settings”→“Editor”→“File and Code Templates”→选择一个你想要设置的→输入模板配置→“确定”
所有文件都可以设置模板,附常用模板变量:
变量 含义
${PROJECT_NAME} 当前模板名称
${NAME} 文件创建时的文件名
${USER} 当前用户名
${DATE} 当前系统日期
${TIME} 当前系统时间
${YEAR} 年
${MONTH} 月
${DAY} 日
${HOUR} 小时
${MINUTE} 分钟
${PRODUCT_NAME} 创建文件IDE的名称
${MONTH_NAME_SHORT} 英文月份缩写, 如: Jan, Feb, etc
${MONTH_NAME_FULL} 英文月份全称, 如: January, February, etc
PEP 8介绍:
PEP 8,Style Guide for Python Code,是Python官方推出编码约定,主要是为了保证 Python 编码的风格一致,提高代码的可读性。
官网地址:https://www.python.org/dev/peps/pep-0008/
Autopep8
Autopep8是自动将Python代码格式化为符合PEP 8风格的工具。它使用pycodestyle工具来确定代码的哪些部分需要被格式化。Autopep8能够修复大部分pycodestyle检测的格式问题。
github地址:https://github.com/hhatto/autopep8
使用pip安装Autopep8
pip install autopep8
查找autopep8的安装路径:
where autopep8
C:\Users\mahl01\.virtualenvs\python-project-APBqVzYh\Scripts\autopep8.exe
Autopep8命令行使用方式如下
autopep8 --in-place --aggressive --aggressive <filename>
Pycharm配置Autopep8方法:
1、选择菜单「File」–>「Settings」–>「Tools」–>「External Tools」–>点击加号添加工具
2、填写如下配置项,点击「OK」保存
Name:Autopep8 (可随意填写)
Tools settings:
Programs:C:\Users\mahl01\.virtualenvs\python-project-APBqVzYh\Scripts\autopep8.exe
Arguments:--in-place --aggressive --ignore=E123,E133,E50 $FilePath$
Working directory:$ProjectFileDir$
3、选择菜单「Tool」–>「Extern Tools」–>「Autopep8」即可使用autopep8自动格式化python代码了。
black的安装设置方法和Autopep8一致。
安装Pycharm以后保存代码的时候并不会自动格式化代码,默认格式化代码的快捷键是CTRL+ALT+L比较麻烦,更改为Alt+F键,操作方法步骤如下:
1、File-Settings--keymap
2、找到需要修改的功能
3、鼠标右键选择——选择“add keyboard shortcut”
4、直接按需要设置的快捷键位,如ALT+F
5、最后应用即可,如下图:
实际go的fmt挺好用的,自动格式化。
首先,go install与go build都可生成执行文件,
go build
通过go build加上要编译的Go源文件名,可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉,生成可执行的文件放在当前目录中。
$ go build hellogo.go
$ ls
hellogo* hellogo.go
也可以通过-o选项来指定其他名字:
$ go build -o myfirstgo hellogo.go
$ ls
myfirstgo* hellogo.go
如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件:
$ go build
$ ls
go-examples* hellogo.go
go install
与build命令相比,install命令在编译源码后还会将可执行文件或库文件安装到约定的目录下。
go install编译出的可执行文件以其所在目录名(DIR)命名
go install将可执行文件安装到与src同级别的bin目录下,bin目录由go install自动创建
go install 还会把导入的依赖包编译到 $GOPATH/pkg,并缓存,如果包未做更改,下次编译则直接使用缓存。
go build 命令加参数 -i 也能达到go install 的效果。
如项目很大,每次编译都要花很长时间,则建议使用 go install 来编译,充分使用它对依赖包的缓存功能。
运行gin框架报错如下:
package google.golang.org/protobuf/encoding/protojson: unrecognized import path "google.golang.org/protobuf/encoding/protojson"(https fetch: Get https://google.golang.org/protobuf/encoding/protojson?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package google.golang.org/protobuf/encoding/prototext: unrecognized import path "google.golang.org/protobuf/encoding/prototext"(https fetch: Get https://google.golang.org/protobuf/encoding/prototext?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
缺少protobuf/encoding包引起的报错,代码已经转移到github上面了,但代码里面的包依赖还是没有修改,是google.golang.org这种,被墙后不能用go get形式安装。
由于GFW限制问题,国内使用 go get 安装 golang 官方包可能会失败,如我自己在安装 collidermain 时,出现了以下报错:
$ go get collidermain
package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
其他包也有类似直接不成功的问题,不翻墙的情况下怎么解决这个问题?其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库
获取 golang.org/x/net 包,其实只需要以下步骤:
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git
其它 golang.org/x 下的包获取皆可使用该方法解决。
安装中文版的CentOS7之后,root目录和home目录下会出现中文的路径名,如“桌面”、“文档”、“图片”、“公共的”、“下载”、“音乐”、“视频”等目录,转换方法如下:
修改/etc/locale.conf文件内容如下:
cat /etc/locale.conf
LANG="en_US.UTF-8"
阳光很好,难得的天气;
希望心情也如天气一样。
国庆时回老家待了几天,淡淡的乡愁,故乡是永远挥不去的思念·
玉米熟了
国庆期间带小朋友去陕西自然博物馆参观,小家伙很开心;
陕西概况介绍
Oracle修改SGA超过系统内存后,会造成启动失败,解决方法如下:
1、登录oracle
sqlplus sys/sys@XXX(网络服务名). as sysdba
能够登陆
提示已经连接到空闲例程;
2、找 pfile,在 /.../admin/XXX(服务名)/pfile 下,init.ora.XXXXXXX(数字串)
3、执行命令
SQL> startup pfile='pfile 路径'
通过指定的 pfile 启动数据库实例
4、执行命令
SQL> create spfile from pfile='pfile 路径';(一定要有分号!)
创建成功会提示: 文件已创建。
5、查看SGA
show parameter sga
已经SGA恢复了调整之前的配置,在此根据系统实际内存修改大小即可。
ORA-27102: out of memory一般发生在服务器系统配置变更以后,oracle在启动的时候报错,
SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
系统实际可用内存还剩几十个GB,这个问题在linux到64位中比较常见,当SGA的值大于共享内存就会报这个错;
解决方法:
--MetaLink上给出了关于这个问题的描述 [ID 301830.1]
--是由于kernel.shmall值设置太小引起的
kernel.shmall
该参数用于配置系统一次能够使用的最大的共享页面数,该参数的值总是ceil(shmmax/PAGE_SIZE)
Oracle 9i,10g,11g的x86以及x86-64平台推荐以及缺省的大小通常为2097152
在大多数情况下,该参数是够用的。按照上述计算方式页面内存总大小可以达到8GB(2097152*4096 bytes (shmall*PAGE_SIZE))
通常情况下,PAGE_SIZE 的大小为4096byte,除非使用了Big Pages 或 Huge Pages
对于超出8GB系统内存,如共享内存段(shmmax)的最大大小是16G,则所需要共享内存页数(shmall)为16GB/4KB=16777216KB/4KB=4194304(页)
共享内存在shmall这个参数中设置,shmall单位为页,换算成内存大小还需要把两个值相乘,如shmall=8388608,那么共享内存的大小就是(8388608*4096)/(1024*1024*1024)=32G
其他依次类推;
1、查看系统当前连接会话数
select s.value,s.sid,a.username
from
v$sesstat S,v$statname N,v$session A
where
n.statistic#=s.statistic# and
name='session pga memory'
and s.sid=a.sid
order by s.value;
2、等待最多的用户
SELECT s.SID, s.username, SUM (a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a, v$session s
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
GROUP BY s.SID, s.username
ORDER BY total_wait_time DESC;
MySQL 8.0.21忘记密码的时候重置密码方法基本和MySQL5.7方法一样,重置方法如下:
1、先修改my.cnf文件在[mysqld]部分增加skip-grant-tables参数。
2、重启mysql服务
3、直接使免密码登录mysql,使用下面命令修改root密码:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;
顺序不能乱喔,要么会报ERROR 1290 (HY000)错误。
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
VIA官网文档:
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
用户反映NC测试库不能连接,报ORA-00257错误,截图如下:
错误原因是很常见的‘归档日志’写满‘快闪恢复区’(flash recovery area)导致的问题。解决方法如下:
一、删除过期的归档文件;
二、修改快闪恢复区(flash recovery area)的大小;
MySQL8默认加密使用的是caching_sha2_password插件,
root@devops_db 17:54: [mysql]> show variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| default_authentication_plugin | caching_sha2_password |
+-------------------------------+-----------------------+
1 row in set (0.00 sec)
root@devops_db 17:55: [mysql]> select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | ice | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)
使用SQL客户端连接的时候就会报Plugin caching_sha2_password could not be loaded错误,常见有如下解决方法:
1、写入my.cnf文件后重启MySQL:
[mysqld]
default_authentication_plugin=mysql_native_password
2、兼容新老版本的认证方式:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxx'; #更新用户密码
FLUSH PRIVILEGES; #刷新权限
3、创建用户时指定加密方式:
CREATE USER 'ice'@'10.10.%' IDENTIFIED WITH mysql_native_password BY 'password'; #加密方式为
GRANT ALL privileges on TESTDB.* to 'ice'@'10.10.%' with grant option;
FLUSH PRIVILEGES;
使用mysql_native_password插件加密即可链接,mysql_native_password也是5.7以下版本使用的加密方式。
Centos7.8安装的是minimal最小化版本,首先安装基础必需的软件包及更新下系统:
yum install gcc gcc-c++ gcc-g77 make autoconf automake ncurses ncurses-devel openssl openssl-devel bison cmake cmake3 -y
MySQL8.0需要用gcc的版本为 4.8以上,CentOS自带的版本比较低,通过yum安装的版本也低,参考下面升级GCC版本
升级GCC版本参考:https://www.unixso.com/Linux/update-gcc.html
添加mysql运行账号及数据保存目录
groupadd mysql
useradd -g mysql mysql -s /bin/false
mkdir -p /data/mysql/
mkdir -p /data/mysql_logs/binlog/
touch /data/mysql_logs/error.log
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /data/mysql_logs/