5分钟学会MySQL-this is incompatible with sql_mode=only_full_group_by错误解决方案
5分钟学会MySQL- "this is incompatible with sql_mode=only_full_group_by"错误解决方案 前言: 一、原理层面 这个错误发生在mysql 5.7 版本及以上版本会出现的问题: mysql 5.7版本默认的sql配置是:sql_mode="ONLY_FULL_GROUP_BY",这个配置严格执行了"SQL92标准"。 很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。 二、sql层面 在sql执行时,出现该原因: 简单来说就是:输出的结果是叫target list,就是select后面跟着的字段,还有一个地方group by column,就是 group by后面跟着的字段。由于开启了ONLY_FULL_GROUP_BY的设置,所以如果一个字段没有在target list 和group by字段中同时出现,或者是聚合函数的值的话,那么这条sql查询是被mysql认为非法的,会报错误。 一、查看sql_mode的语句如下
1 |
select @@GLOBAL.sql_mode; |
二、解决方案-(推荐解决方案二) ①解决方案一:sql语句暂时性修改sql_mode
1 |
set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
问题: 重启mysql数据库服务之后,ONLY_FULL_GROUP_BY还会出现。 ②解决方案二:完美解决方案。 需修改mysql配置文件,通过手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性, my.cnf位于etc文件夹下,vim下光标移到最后,添加如下:
1 |
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
重启mysql服务,顺利解决。 from:https://blog.csdn.net/qq_42175986/article/details/82384160
View DetailsIIS上部署Asp.Net Core 3.1应用
前置条件 官网下载页面:https://dotnet.microsoft.com/en-us/download/dotnet/3.1 安装ASP.NET Core Runtime 3.1.31 安装 Hosting Bundle 3.1.31 执行以下命令 net stop was /y net start w3svc 发布应用 部署到IIS 1.应用程序池:选择无托管模式。我电脑是64位,选择“启用32位应用程序”为“false”。 2.网站设置 为你的网站创建windows用户,把网站目录设置对该用户全部权限。 IIS管理器选择你的网站:基本设置 -> 连接为 -> 特定用户。 参考资料: https://blog.csdn.net/weixin_33757609/article/details/93693395 https://blog.csdn.net/xulong5000/article/details/106072771 https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio
View Detailswindow server 2012 R2 Standard 部署.netcore 3.1 踩坑
服务器版本:window server 2012 R2 Standard SDK 版本: dotnet-sdk-3.1.302-win-x64.exe 部署步骤: 1. 官网下载sdk( https://download.visualstudio.microsoft.com/download/pr/56b00a71-686f-4f27-9ad1-9b30308688ed/1fa023326e475813783a240532c9f2c8/dotnet-sdk-3.1.302-win-x64.exe ) 2.安装部署: 拷贝到服务器,双击安装,安装完毕后,打开cmd名称,输入 dotnet命令查看。。。。结果如下 这是个啥??? 某度查询说是缺少补丁,需要打补丁,服务器又不能联网只能手动上网单独下载了。 其中:https://www.microsoft.com/en-us/download/details.aspx?id=42334 这里面包含KB2919355,KB2932046,KB2934018,KB2937592,KB2938439,KB2959977,chearcompressionflag.exe,可以一次下载。 但是在安装这些补丁之前需要先安装KB2999226 地址 https://www.microsoft.com/en-us/download/confirmation.aspx?id=49063 和 KB2919442,地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=42135 补丁安装顺序: KB2999226 KB2919442, clearcompressionflag.exe、 KB2919355、 KB2932046、 KB2959977、 KB2937592、 KB2938439、 KB2934018。 严格按照补丁顺序安装,否则不确保是否能安装成功。 最后在安装 Visual C++ Redistributable for Visual Studio 2015 地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145 安装时提示重启,可以都安装完毕后重启,也可以每次重启,我是都安装完了再重启的,也可以成功。 安装重启后,在cmd命令下输入 dotnet --version 如果出现一下内容,就说明安装成功 光子:我按以上教程实际操作时不行,要安装:https://www.microsoft.com/en-us/download/confirmation.aspx?id=42162 from:https://www.cnblogs.com/jone_sun/p/13403269.html
View DetailsDocker Toolbox替换默认docker machine的存储位置
一直想试试docker,但是docker高度依赖Linux内核,Windows7的机子用起来比较麻烦,由于某些契机还是用了起来。Windows想用docker的话,需要借助虚拟机,Windows7不像Windows10自带Hyper虚拟机,所以要用docker只有Docker Toolbox这个选择了。具体安装过程就不具体说了,官网也有详细的教程,不过让我最气的是联想的本本一直进入不了bios,最后Fn+F2进入bios启用虚拟设置。 Docker ToolBox安装 1、安装前,需要去bios启用虚拟设置,这样虚拟机才能运行。 2、安装,安装可选的工具: Kitematic,docker的界面化,没什么太大需要 Git,本来已安装的话也不用安装 3、修改 Docker QuickStart 快捷方式,将里面的Git的位置换成你的Git的安装位置(或者可以直接Git进入Docker Toolbox安装位置,运行./start.sh) 替换默认docker machine的存储位置 我相信大部分人都是直接安装官网的教程或者上面的安装方式直接安装的,但是将虚拟机安装在系统盘可能会带来各种问题,所以趁docker的镜像还没膨胀的时候赶快迁移吧。下面步骤可以在安装前做,这样可以减少删除已安装的default docker虚拟机。 1、在Windows的系统环境添加MACHINE_STORAGE_PATH ,指向虚拟机的位置(我推荐D:\VM\machines) 2、复制boot2docker.iso到虚拟机的位置同级目录cache上(D:\VM\cache),如果不是最新的话需要下载最新。 下面分两种情况: 如果还没安装default docker虚拟机,可以进入Docker QuickStart直接安装。 已安装了default docker虚拟机,需要先删除原来的,再安装到指定位置。 删除default docker虚拟机 1、进入Docker QuickStart命令行(Docker QuickStart不能进的话,用Git命令行) 2、运行docker-machine stop default,停止运行中的虚拟机 3、运行docker-machine rm default,删除默认的虚拟机 创建docker虚拟机 1、运行docker-machine create --driver=virtualbox default,等待创建完成 2、创建完成后,运行docker run hello-world测试。可以看到出现问题了:
1 |
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.36/version: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running. |
3、运行docker-machine env default,可以看到docker server的变量,copy变量在命令行中运行。 4、再次运行docker run hello-world测试,这次应该没问题。 修改docker 的配置 嫌弃官网的docker源太慢需要使用国内的源加速的话,要怎么配置呢? 1、运行docker-machine ssh default连接虚拟机 2、修改
1 2 3 4 5 6 7 |
docker@default:~$ sudo tee /var/lib/boot2docker/etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://registry.docker-cn.com" ] } EOF |
3、退出ssh,重启docker-machine restart default from:https://www.cnblogs.com/ginponson/p/8601320.html
View DetailsInfoWorld 公布 2020 年最佳开源软件
InfoWorld 公布了 2020 年最佳开源软件榜单。 InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌,每年 InfoWorld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年的“最佳开源软件” (InfoWorld’s Best of Open Source Software Awards, Bossies),该奖项评选已经延续了十多年。 获奖的 25 个开源项目包含用于构建 Web 应用的工具、机器学习模型、数据可视化工具、工作流、数据库和数据分析工具等。 下边来看看每一个项目(点击每个项目名可跳转进入项目介绍页面)。 Hasura Hasura GraphQL Engine 是一个超快的 GraphQL 服务器,可以让你基于 PostgreSQL 数据库快速建立 GraphQL API 服务。通过数据库事件实现 webhook triggers ,其 remote schemas 用于构建业务逻辑。 Prisma Prisma 被认为是一款对 TypeScript 开发者友好的 ORM 框架,包括 SQL 查询自动补全功能,可用于快速构建 GraphQL 服务、REST API 和数据库服务等。 已支持 MySQL, PostgreSQL, MongoDB 和 SQLite 等数据库,其他流行数据库正在开发中 客户端已支持 JavaScript, TypeScript, Flow, Go 等语言 类型安全的数据库访问,包括过滤器、聚合、分页和事务 数据库的实时事件系统以获得有关数据库事件的通知 具有简单 SDL 语法的声明性数据建模和迁移 Jekyll InfoWorld 对 Jekyll 的评价是“最好的静态站点生成器之一”。Jekyll 无需数据支持,可以将内容打包为单个网页的集合,然后推送到 CDN。Jekyll 所做的工作虽然只是将文本放入模板并生成静态内容,正因如此,用户获得了模板所带来的灵活性以及存储静态文件的良好速度。 Gatsby Gatsby 是基于 React 构建的静态站点生成器,拥有丰富的插件生态,其主要目标之一是交付访问速度快速的网页,它通过利用良好的缓存、静态页面生成和基于边缘的 CDN 数据源来实现这一目标。所以 Gatsby 声称自己比其他的静态站点生成器快 2.5 倍。InfoWorld 对 Gatsby […]
View DetailsGit 多用户配置
一、引言 一般来说,安装好 git 后,我们都会配置一个全局的 config 信息,就像这样:
1 2 |
git config --global user.name "jitwxs" // 配置全局用户名,如 Github 上注册的用户名 git config --global user.email "jitwxs@foxmail.com" // 配置全局邮箱,如 Github 上配置的邮箱 |
但是你可能会碰到需要在一台电脑上配置多个用户信息的需求。此时就不能够用一个全局配置搞定一切了。 比如因为我的个人电脑出了问题,我想要提交我的个人项目时,只能用公司配的电脑去提交。而公司的电脑配置的是私有的 gitlab 仓库,而我自己的项目存储在 github 上。这两个仓库不仅仓库地址不一样,仓库的用户名和邮箱都不一样。 二、配置多用户 本文将配置分别是 github 以及 gitlab 上的两个用户,并分别在它们所属的项目上进行 git 操作,这差不多就是配置多用户的大部分操作了。 GITHUB GITLAB 用户名 jitwxs lemon 邮箱 jitwxs@foxmail.com lemon@test.com 2.1 清除全局配置 在正式配置之前,我们先得把全局配置给清除掉(如果你配置过的话),执行命令:
1 |
git config --global --list |
这会列出所有已经配置的全局配置,如果你发现其中有 user.name 和 user.email 信息,请执行以下命令将其清除掉:
1 2 |
git config --global --unset user.name git config --global --unset user.email |
2.2 生成钥对 钥对的保存位置默认在 ~/.ssh 目录下,我们先清理下这个目录中已存在的钥对信息,即删除其中的 id_rsa、id_rsa.pub 之类的公钥和密钥文件。 首先我们开始生成 github 上的仓库钥对,通过 -C 参数填写 github 的邮箱:
1 |
ssh-keygen -t rsa -C “jitwxs@foxmail.com” |
按下 ENTER 键后,会有如下提示:
1 |
Generatingpublic/privatersa key pair.Enter fileinwhich to save the key (/Users/jitwxs/.ssh/id_rsa): |
在这里输入公钥的名字,默认情况是叫 id_rsa,为了和后面的 gitlab 配置区分,这里输入 id_rsa_github。输入完毕后,一路回车,钥对就生成完毕了。 下面开始生成 gitlab 上的仓库钥对,步骤和上面一样:
1 |
ssh-keygen -t rsa -C “lemon@test.com” |
生成的公钥名就叫做:id_rsa_gitlab。 2.3 添加 SSH Keys 我相信你既然都看到这篇文章了,你一定掌握了如何将公钥添加到 SSH Keys 中。请将 id_rsa_github.pub 和 id_rsa_gitlab.pub 内容分别添加到 github 和 gitlab 的 SSH Keys 中,这里就不啰嗦了。 2.4 添加私钥 在上一步中,我们已经将公钥添加到了 github 或者 gitlab 服务器上,我们还需要将私钥添加到本地中,不然无法使用。添加命令也十分简单,如下:
1 2 |
ssh-add ~/.ssh/id_rsa_github // 将 GitHub 私钥添加到本地 ssh-add ~/.ssh/id_rsa_gitlab // 将 GitLab 私钥添加到本地 |
添加完毕后,可以通过执行 ssh-add -l 验证下,如果都能显示出来和下面一样,就 […]
View Detailsgit多账号配置,同时使用多个代码托管平台
我们在使用git管理代码的时候,经常需要放到不同的托管网站,如github,osc等,那么不同的网站账号不一样,就需要生成不同密钥,配置对应的不同网站,接下来我们写写如何处理。 ps:这里是在centos7.2下操作,不过其他操作系统依然适用,这里举的例子,一个是github,一个是osc。 1 生成密钥 这里可以设置密钥文件名和路径,/root/.ssh 是路径(一般路径选择默认),id_rsa_github是密钥文件名, 文件命名后按两次回车,即密码为空
1 |
ssh-keygen -T rsa -C "example@qq.com" |
生成github的密钥 生成osc的密钥 查看一下.ssh文件夹,发现有id_rsa_github, id_rsa_github.pub(放到github),id_rsa_osc, id_rsa_osc.pub(放到osc)
1 |
ls -a /root/.ssh |
2 接下来配置多账号 在.ssh文件夹下面新建一个命名为config的文件,编辑如下内容
1 2 3 4 5 6 7 8 9 10 11 |
#github Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa_github User pinnuli #osc Host gitee.com HostName gitee.com IdentityFile ~/.ssh/id_rsa_osc User pinnuli |
(/images/git_multiaccount_config.png) 3 把对应的公钥放到github和osc上面 4 测试是否成功
1 |
ssh -T git@github.com |
1 |
ssh -T git@gitee.com |
至此,git多账号配置完毕,需要更多账号也是一样的道理 from:https://blog.csdn.net/pinnuli/article/details/81293071
View Details【Git】删除某个全局配置项
1.查看Git所有配置 git config --list 2.删除全局配置项 (1)终端执行命令: git config --global --unset user.name (2)编辑配置文件: git config --global --edit from:https://www.cnblogs.com/zqunor/p/9055262.html
View DetailsGit:gitlab修改域名配置
sudo gitlab-ctl stop 修改/etc/gitlab/gitlab.rb中的如下一行:
1 |
external_url 'http://gitlab.xxxxx.cn' |
执行更新配置操作 sudo gitlab-ctl reconfigure sudo gitlab-ctl start from:https://blog.csdn.net/qq_36937234/article/details/89381857
View DetailsLinux ssh-add命令
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。 来自: http://man.linuxde.net/ssh-add 语法: ssh-add [-cDdLlXx] [-t life] [file …] ssh-add -s pkcs11 ssh-add -e pkcs11 选项 -D:删除ssh-agent中的所有密钥. -d:从ssh-agent中的删除密钥 -e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。 -s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。 -L:显示ssh-agent中的公钥 -l:显示ssh-agent中的密钥 -t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥 -X:对ssh-agent进行解锁 -x:对ssh-agent进行加锁 from:https://blog.csdn.net/feifei3851/article/details/81113267
View Details