分析MySQL异常:Deadlock found when trying to get lock 2.“事务A”尚未结束时,“事务B”对“数据a”增加更新锁,查询条件是α字段。3.“事务B”加更新锁后,“事务A”更新α字段,则会触发此Deadlock。备注:如果右图不在事物中,则错误会抛在“事务A中”1.“事务A”中,对“数据a”加更新锁。图示:左未“事务A”右为“事务B”
Debian纯净系统安装php常用扩展和程序 mysql扩展、redis扩展、gd扩展、zip扩展、bcmath扩展、opcache扩展、pcntl扩展、mongodb扩展、swoole扩展、sodium扩展、sqlsrv和pdo_sqlsrv扩展等。
零基础学习windows环境安装Ant Design of Vue 第一步:安装node.js已安装可跳过。官网下载地址:https://nodejs.org/zh-cn/download/安装完成之后,就拥有了npm,一个node.js自带的包管理工具。类似php的composer。第二步:用npm安装yarn已安装可跳过。yarn和npm一样,是一个包管理工具,但速度更快(快很多很多),命令更短(好记)。打开windows自带的powershell工具,执行以下命令:(后面所有命令都在此执行)> npm install -g yarn验证安装
记C#的一些特别的特性 委托:格式:修饰符 delegate 返回值类型 委托名 ( 参数列表 );例子:public delegate void MyDelegate();个人理解,类似js的函数表达式。就是将一个方法的引用。比如:MyDelegate myDelegate = new MyDelegate(Test.SayHello); // Test是一个类,SayHello是它的方法。myDelegate(); // 相当于执行了Test.SayHello();// 相当于js的:var f =
当元素滚动到顶部时,固定在顶部。 当.nav-bar滚动到顶部时,固定在顶部。var pos = $('.nav-bar').offset();$(window).scroll(function () { if ($(this).scrollTop() > pos.top) { $('.nav-bar').css('top', 0).css('position', 'fixed'); } else if ($(this).scrollTop() <= pos.top) { $(
windows10下部署WSL2的docker的lnmp环境 windows官方攻略推荐在windows下安装docker,比较麻烦。这边尝试在WSL2中直接通过docker搭建lnmp环境。安装WSL官方文档官方文档中介绍了两种方式安装WSL,一种是简化安装,输入一行命令即可。另一种是手动安装,有6个步骤。使用简化安装需要加入 Windows 预览体验计划,我选用的是手动安装。以下是安装方法:组合键win+x,以管理员身份打开 PowerShell 并运行:> dism.exe /online /enable-feature /featuren
VSCode手动安装go插件的依赖 vscode安装了Go插件之后,使用各种功能时,需要用到go语言的依赖包。自动安装会报错,这里介绍手动安装方法。这里介绍一个例子:安装goreturns依赖(自动格式化代码的工具)。克隆goreturns包:$ cd $GOPATH/src$ git clone https://github.com/sqs/goreturns.git此时安装会报错:$ go install goreturnsgoreturns\goreturns.go:23:2: cannot find package "
通过Byte、ASCII、GB2312、Unicode、UTF-8的关系讲清楚字符编码 定义:byte: 字节,计量单位,8个比特为1个字节。可以表示的最大数字是11111111,十进制是255。ASCII: 一套编码规则,为了让计算机能够识别字符而设计的,由美国制定、固定用1个字节来存放,规则比较简单,从0开始,1个整数对应1个字符。例1:十进制整数 65 对应字符 A。GB2312: 也是一套编码规则,由中国制定,固定用2个字节来存放。收录规则是“区位码”,第1个字节对应“区”,第2个字节对应“位”,区和位的范围都是1-94,计算时需要把区号和位号分别加上0xA0,按十进
Laravel 5.x Illuminate\Http\Request 类 offsetSet(),merge(),replace() 方法的区别 Request是Laravel最常用类之一,今天碰到几个功能类似的方法,仔细看了一下区别,这里记录一下以供日后参考。offsetSet()方法:接受2个参数,键和值,用来向$request对象添加变量。源码:/** * Sets a parameter by name. * * @param string $key The key * @param mixed $value T...
使用Docker手动部署LNMP开发环境 我的系统版本:CentOS-7-x86_64-Minimal-1908.iso安装Docker安装仓库:$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 设置仓库地址:$ sudo yum-config-manager \ --add-repo \ https://...
PhpStorm配置远程xdebug 安装XDebug安装就不细说了,攻略很多,这里主要讲配置。安装攻略:源码安装 xdebug,并在 vscode 中配置php.ini配置:注释掉的都可以不要zend_extension=xdebug.so; xdebug 的远程连接开关,必须开,关了就不发消息给IDE。xdebug.remote_enable=1; 这个配置是2.9版之前的。我装的2.9,配了没用。phpsto...
一个函数搞定无限层级分类 数据结构关键点:需要处理源数组,使其键名与键值的id相等。level主要为了显示方便,不是关键字段。$items = array( 1 =&amp;gt; array('id'=&amp;gt;1, 'pid' =&amp;gt; 0, 'name'=&amp;gt;'1层1', 'level' =&amp;gt; 1), 2 =&amp;gt; array('id'=&am
使用PHP7.1的openssl加解密MCRYPT_3DES,与7.1之前的版本匹配 $message = "Lorem ipsum";$key = "123456789012345678901234";$iv = '';$message_padded = $message;$message_padded = self::pkcs5_pad($message_padded, 8);if (strlen($message_padded) % 8) { $messa...
使用PHP7.1的openssl加解密AES-128-CBC,与7.0之前的版本匹配 因为老版本与线上环境的mcrypt不兼容,在php7.1上使用会报错,官网也说了:Warning This function has been DEPRECATED as of PHP 7.1.0. Relying on this function is highly discouraged. 这里贴上解决办法。 先上7.0之前的代码:&lt;?phpclass Security{ pr
mysql 5.7 主从配置 原理:MySQL使用3个线程来执行复制功能(其中1个在【主服务器】上,另两个在【从服务器】上。 当【从服务器】发出START SLAVE时,【从服务器】创建一个I/O线程,以连接【主服务器】并让它发送记录在其二进制日志中的语句。 【主服务器】创建一个线程将二进制日志中的内容发送到【从服务器】。该线程可以识别为【主服务器】上SHOW PROCESSLIST的输出中的Binlog Dump线程。
CentOS7防火墙firewalld配置 配置文件路径firewalld的配置存储在/usr/lib/firewalld/和/etc/firewalld/上的各种XML文件中。 1. 系统配置目录:/usr/lib/firewalld/services 目录中存放定义好的网络服务和端口参数,系统参数,不能修改。 2. 用户配置目录:/etc/firewalld/ 公共规则定义在/etc/firewalld/zones/public.
nginx学习笔记 基础nginx由模块组成,这些模块由配置文件中指定的指令控制。指令被分为简单的指令和块指令。一个简单的指令由空格分隔的名称和参数组成,以分号结尾。块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号包围的一组附加指令结束。如果一个块指令可以在括号内包含其他指令,则称为上下文。例子:http { server { location / {
nginx配置负载均衡 先科普一下什么是反向代理:我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了。两者的区别在于代理的对象不一样:正向代
PHP获取curl传输进度 curl上传或者下载,有以下2个选项:CURLOPT_NOPROGRESS => false,CURLOPT_PROGRESSFUNCTION => 'callback',CURLOPT_NOPROGRESS:是否关闭传输进度,默认是true。CURLOPT_PROGRESSFUNCTION:回调函数,curl传输过程中,会每隔一段时间自动调用该函数。我测试过,间隔不到1秒,具体不知道。官方的注释