异常信息
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client[/app/thinkphp/library/think/db/Connection.php:295]
原因
MySQL8中用户的认证类型(Authentication type)默认为cacheing sha2 password导致的错误,需要修改用户权限认证方式为mysql_native_password。
我这个错误就是因为数据库升级导致的。
解决办法
数据库降级,退回以前版本改为mysql_native_password认证方式
数据库退回以前的版本,这里不进行操作了。下面只针对认证方式改回mysql_native_password的方式。
修...
2年前 (2022-07-29) 509℃ 0评论
1喜欢
背景
.net core 应用中使用了Excel文件导出,发现Excel导出失败,导出的操作出现了异常。看了一下是Gdip的这个异常。这个异曾经见到过,记得也很快解决了,不晓得为什么又会出现呢?仔细看了一下,详细错误还是有点差别。经过确认上一次安装的libc6-dev、libgdiplus是存在的,并没有丢失或者损坏。
根据异常信息,基本可以确定是引用System.Drawing.Common类库引起的问题,经过排查发现引用的Excel组件Magicodes.IE.Excel.Abp包中有使用System.Drawing.Common。前几天还好好的,现在为何System.Drawing.Common不支持非Windows平台呢?只是确定引用的System.Drawing.Common库的版本是6.0,其他的就没有太多线索。
最后又看一遍异常信息,根据异常提示打开所提示...
2年前 (2022-04-08) 814℃ 0评论
27喜欢
背景
客户需要针对用户的积分进行排名,按照积分的多少降序进行。为了更快更好的满足客户需求,就采取了SQL Server已有的排名函数RANK或DENSE_RANK来实现
RANK
返回结果集的分区内每行的排名。 行的排名是相关行之前的排名数加一。
ROW_NUMBER 和 RANK 类似。 ROW_NUMBER 按顺序对所有行进行编号(例如: 1、2、3、4、5)。 RANK 为相应关联提供相同的数值(例如: 1、2、2、4、5)。
RANK是运行查询时计算出的临时值
语法
RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )
如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名
DENSE_RANK
此函数返回结果集分区中每行的排名,排名值没有间断。...
2年前 (2022-04-06) 441℃ 0评论
3喜欢
有时候一些需求,移除字符串前后指定的字符串。其实,如果没有仅移除一次的需求,使用系统自带的方法即可完成,使用Trim、TrimEnd、TrimStart方法也比较快捷。当有一些特殊需求的时候,这些方法就不再方便。所以,就使用正则表达式简单的实现相关需求。
字符串扩展代码实现
public static partial class Extensions
{
/// <summary>
/// 移除字符串前后指定的字符串
/// </summary>
/// <param name="value">字符串本身</param>
/// <param name="trimContent">将要移除字符前后的指定内容</param>
//...
2年前 (2022-04-04) 622℃ 0评论
1喜欢
背景
在调整一个移动端的页面,测试过程中发现在苹果IOS系统的浏览器中缩放异常,其实页面操作上来讲是不需要当前页面缩放的。所以,就需要禁止当前页面的缩放操作。经过确认,可以使用以下代码实现禁止缩放操作。
<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
Viewport
属性名取值描述width正整数或device-width定义视口的宽度,单位为像素height正整数或device-height定义视口的高度,单位为像素,一般不用initial-scale[0.0-10.0]定义初始缩放值minimum-scale[0.0-10.0]定义放大...
2年前 (2022-01-15) 602℃ 0评论
0喜欢
背景
在.net 5应用中,使用了Excel文件处理,在Docker容器中运行就会出现关于libgdiplus的异常。虽然在Dockerfile中可以使用以下内容解决异常,但是这个速度太慢了。每次构建慢的让人怀疑人生,最重要的是还可能失败。
RUN apt-get update && apt-get install -y libgdiplus libc6-dev && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
为了提高构建速度,所以使用官方的基础镜像再二次构建一个基础镜像,默认安装 libgdiplus ,这样每次构建速度就会提升好多好多。默认安装了libgdiplus等库,以便支持Excel导入导出
构建基础镜像的Dockerfile
Dockerfile
...
2年前 (2021-12-18) 970℃ 0评论
63喜欢
背景
在使用.net 5构建应用时,在处理某些编码问题使用了GB2312,应用运行后报错。经过确认知道了编码 GB2312 默认不支持。
异常信息
Not Support Encoding’GB2312′ is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter ‘name’)System.Exception: Not Support Encoding’GB2312′ is not a supported encoding name. For inf...
2年前 (2021-12-17) 619℃ 0评论
3喜欢
游标
游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标的特性
游标具有以下三个特性:
不敏感(Asensitive)数据库可以选择不复制结果集只读(Read only)不滚动(Nonscrollable)游标只能向一个方向前进,并且不可以跳过任何一行数据
游标的优点
游标是针对行操作的,对从数据库中SELECT查询得到的结果集的每一行可以进行分开的独立的相同或不同的操作,是一种分离的思想。游标是面向集合与面向行的设计思想之间的一种桥梁。
游标的缺点
游标的主要缺点是性能不高。游标的开销与游标中进行的操作相关,如果在游标中进行复杂的操作,开销会非常高。
游标的适用场景
MySQL数据库中,可以在存储过程、函数、触发器、事件中使用游标。
...
3年前 (2021-08-28) 646℃ 0评论
42喜欢
背景
某项目数据统计,为了更加直观显示一些数据,刚好有这个行转列的一个需求。行转列的需求其实在平常业务中也是比较常见的,在数据统计中使用的比较频繁。行转列以前也遇到过,之前数据库使用的是Microsoft SQL Server。目前使用的是MySQL数据库,这里也做一下简单的记录。
实现
结构与数据准备
为了更好的理解行转列,这里准备一张结构简单都表以及数据。
DROP TABLE IF EXISTS `project_completion_rate`;
CREATE TABLE `project_completion_rate` (
`id` int(8) NOT NULL,
`project_user` varchar(20) DEFAULT NULL,
`project_content` varchar(20) DEFAULT NULL...
3年前 (2021-08-09) 418℃ 0评论
7喜欢
背景
无意见又翻到了曾经的一些项目,看到了关于.Net访问Windows共享目录的一些代码。曾经在内网通过共享目录作为服务器文件的存储方式,个人觉得部分的实现代码可以记录下来作为备份。所以,整理了以下代码。
代码实现
公用内容
/// <summary>
/// IdentityScope 的摘要说明
/// </summary>
public class IdentityScope : IDisposable
{
// obtains user token
[DllImport("advapi32.dll", SetLastError = true)]
static extern bool LogonUser(string pszUse...
3年前 (2021-06-29) 487℃ 0评论
11喜欢
背景
因业务需求需要进行数据同步,客户又没有提供相关的接口。经过协商,客户提供相关视图直连他们数据库。
数据库:Oracle 11g
问题
使用.net访问Oracle数据出现以下错误:
System.Data.OracleClient 需要Oracle 客户端软件 version 8.1.7 或 更高版本
解决
找到Oracle安装文件夹找到oci.dll、oraociei11.dll两个dll文件将以上两个文件放到system32目录下或者程序的bin目录下
下载
Oracle_11g提取码:hrbc
以上下载地址中的文件就是本文中提到的两个DLL文件
转载请注明:清风亦平凡 » System.Data.OracleClient需要Oracle 客户端软件version 8.1.7或更高版本...
3年前 (2021-06-23) 1174℃ 0评论
7喜欢
背景
因业务需求的需要,要与第三方进行相关的数据对接,按照第三方规定需要对其数据通过私钥进行RSA解密。第三方提供了相关的Pem证书文件,但是这种格式的证书文件.NET并不能直接使用,需要进行相关的转换。
pem在转XML时需要依赖一个第三方库BouncyCastle。
下载
BouncyCastle
如果通过官网下载比较慢,可以使用本博以上链接下载。
代码实现
using System;
using System.Text;
using System.Security.Cryptography;
using System.IO;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Security;
namespace CommonTool.Share....
3年前 (2021-06-14) 1012℃ 0评论
10喜欢
创建链接服务器
sp_addlinkedserver
创建链接服务器。 链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询。 使用 sp_addlinkedserver 创建链接服务器后,可对该服务器运行分布式查询。 如果链接服务器定义为 SQL Server实例,则可执行远程存储过程。
语法
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] '...
3年前 (2021-05-23) 385℃ 0评论
5喜欢
在工作当中有时候需要查看指定容器的日志记录,当日志比较多的时可以通过参数来进一步筛选。
命令格式
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(...
3年前 (2021-05-19) 671℃ 0评论
4喜欢
背景
站点网上飘,哪有不挨刀。总是遇到千奇百怪的问题,让人猝不及防。在5月1日的前一天,发现博客被人镜像了,这是一个非常糟心的问题,我非常肯定的是这次的镜像不怀好意。为什么我会这么说呢?因为镜像站点域名太不像话了,太长了,有没有特殊的含义,所以我认为这种镜像网站是非常有恶意的。如下图:
镜像站点域名
JavaScript简单紧急处理
这种恶意的镜像站点无法绝对的杜绝,只能尽可能的减小影响。此次处理非常简单,直接使用Javascript对当前域名进行判断,与指定域名不符就跳转回指定的域名。
版本一
var local=window.location.host;
if(local.indexOf("skyfinder.cc")==-1){
location.href = location.href.replace(local,"skyfinder....
3年前 (2021-05-02) 510℃ 0评论
14喜欢
发现Centos系统中出现了很多 TIME-WAIT的空闲连接,连接资源感觉即将耗尽,并且这些TIME-WAIT释放缓慢。
配置修改
vi /etc/sysctl.conf
编辑文件,加入以下内容:
# 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_syncookies = 1
# 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
# 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1
# 修改系統默认的TIMEOUT时间
net.ipv4.tcp_f...
3年前 (2021-04-21) 1068℃ 0评论
26喜欢
背景
jenkins突然无法自动构建镜像,经过确认并非是无法构建,而是磁盘空间满了。 关于手动清理Docker日志的方法,自己曾经也处理过,但是容器多起来就相当麻烦。
在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件.
查看
#!/bin/sh
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
清理
#!/bin/sh
echo "======== start clean docker ...
3年前 (2021-04-10) 733℃ 0评论
26喜欢
docker build 或是 pull 命令就会产生临时镜像。
//删除无效的临时镜像
docker rmi $(docker images -f "dangling=true" -q)
其他方法
停止容器
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
转载请注明:清风亦平凡 » 删除Docker中为none的Image/镜像...
3年前 (2021-04-08) 469℃ 0评论
3喜欢
TFS与解决方案绑定信息清理
tfs与解决方案之间有相关信息需要清理,以下是相关的清理步骤。
删除关联文件以及文件夹
删除项目目录下所有的*.vssscc、*.vspscc为后缀的文件,删除隐藏文件夹$tf
修改项目的解决方案文件
在目录中找到以*.sln为后缀名的解决方案文件,打开文件进行编辑。删除TeamFoundationVersionControl所在的整块内容并保存。
GlobalSection(TeamFoundationVersionControl) = preSolutionSccNumberOfProjects = 2SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}SccTeamFoundationServer = http:///tfs/defaultcol...
3年前 (2021-03-26) 618℃ 0评论
20喜欢
博客园是国内最出名的IT从业者的技术交流社区。
博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。
不知为何,浏览博客园任何帖子都会跳转到整改公告,具体整改原因不详!也不晓得哪里违规了!不管怎么样,希望尽快完成整改,合规合法运营!
为了遵守相关法律法规,合法合规运营,网站进行全面整改,整改工作于2021年3月18日12:00开始,预计于3月25日11:59结束,整改期间全站无法发布任何内容,之前发布的内容重新审核后才能访问,由此给您带来很大的麻烦,请您谅解。
转载请注明:清风亦平凡 » 博客园整改...
3年前 (2021-03-21) 517℃ 0评论
13喜欢
因局域网源代码管理服务器地址做了变更,所以就重新更改下HOST文件中的IP地址。意外发现HOST文件中多了一条记录,而我对这条记录竟然没有一点印象。好奇怪!!!!哪来的呢?172.17.187.161 windows10.microdone.cn,其中IP172.17.187.161又是本地局域网。然后就通过浏览器尝试访问域名windows10.microdone.cn,结果根本无法连接,最后尝试了顶级域microdone.cn,这下就出现了内容。如下图所示:
我仔细回忆一下,自己最近几天究竟做了什么,好像也没有做什么呀!于是,我就在控制面板中打开程序和功能查看一下。最近几个月的程序安装记录,由安装时间来看,也没有太多内容。如下图所示:
我结合之前打开域名microdone.cn来看,这条HOST记录必然和中国邮政储蓄银行网上银行安全控件有关。看到了...
3年前 (2021-03-15) 848℃ 0评论
7喜欢
背景
因有一个需求,需要在线浏览PDF文件。所以,需要找一个满足需求的解决方案。经过一些列资料搜寻,最终确定使用PDF.js插件。目前来说此插件完美满足需求。
PDF.js
一个通用的、基于web标准的、用于解析和呈现pdf的平台。
PDF.js项目在线预览效果
转载请注明:清风亦平凡 » 可以在线浏览PDF的一个WEB标准插件PDF.js...
3年前 (2021-03-01) 448℃ 0评论
24喜欢
Visual Studio Code 安装php插件后提示:
PHP executable not found. Install PHP 7 and add it to your PATH or set the php.executablePath setting
打开VS Code设置查找到php.validate.executablePath进行修改,其值是php安装目录。
{
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"java.semanticHighlighting.enabled": true,
"php...
3年前 (2021-01-07) 2685℃ 0评论
20喜欢
一年前的一个项目,有人反馈上传超时,超时原因是文件大小超出限制。由于原来维护项目的人员离开,现在上传超时的问题就有我来处理。解决方案也比较简单,就是切片上传。前端不想自己写了,就利用了上传组件,这个上传组件是百度的WebUploader。WebUploader这个组件被使用的也比较广泛,为了省事就用它啦!
上传中
合并后
代码实现
前端代码
前端上传以及分片使用的百度上传组件WebUploader
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
...
3年前 (2020-12-31) 1561℃ 0评论
8喜欢
由于客户突然要进行国产化的一个要求,数据库使用更换了国产的达梦数据库,将数据由Oracle数据库迁移到达梦数据库。所以,之前基于Oracle处理的一些功能就需要进行一些调整。
使用NuGet 引入达梦数据提供器DmProvider
引用相关的组件后,就按照套路对已经存在的方法进行相关调整,结果出现了一些编译出错且无论如何调整都无法消除。如下:
错误 CS1705 标识为“Dm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的程序集“Dm”所使用的“System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”版本高于所引用的标识为“System.Runtime, Version=4.1.2.0, ...
3年前 (2020-12-07) 874℃ 0评论
3喜欢