现象描述
1 | 安装了Clash,safari可以正常使用,chrome下无痕模式可以,正常模式就不行 |
解决方法
1 | 先chrome安装一个SwitchyOmega插件(可以离线安装,自行搜索方法) |
现象描述
1 | 安装了Clash,safari可以正常使用,chrome下无痕模式可以,正常模式就不行 |
解决方法
1 | 先chrome安装一个SwitchyOmega插件(可以离线安装,自行搜索方法) |
先说下我的环境,机器是Mac,系统是Monterey 12.0.1,之前用的brew安装的php@7.2
可能是之前用brew安装了ffmpeg导致PHP的CLI环境出问题了,在CLI下执行PHP会报
Library not loaded: /usr/local/opt/openldap/lib/libldap-2.4.2.dylib
说下解决方法,就是需要brew重装下php才行
由于我的brew之前重装过,直接执行brew reinstall php@7.2会报错
Error: php@7.2 has been disabled because it is deprecated upstream!
需要执行下
brew tap shivammathur/php
在执行
brew install shivammathur/php/php@7.2
即可
安装完成后问题得到解决!
1 | 今天业务方反馈一个运行很久了的接口报签名错误,经过定位发现是post提交的 |
网上看到的,第一次知道这个标签原来是用来显示拼音的…
1 | <ruby> |
1 | https://help.aliyun.com/document_detail/92883.html |
阿里云后台配置oss的操作就不复述了,可以参考上面的文档进行,小程序使用的话肯定是外网访问域名了。将阿里云后台的这个域名添加到小程序->开发设置的上传、下载域名里去,注意需要加上http或者https头。
1 | <?php |
1 | const host = '<host>'; |
公司有个业务是分表的,并且每个子表的字段还有略微的差异,字段也很多50+,具体的业务就不说了。
由于各子表的字段名不同,所以需要把表的所有字段都捞出来,这里就需要用到GROUP_CONCAT方法。
1 | SET SESSION group_concat_max_len = 4294967295; |
两个注意点,一个是group_concat_max_len,如果用默认值会出现字段获取不全的情况,第二个就是DISTINCT COLUMN_NAME,否则会出现字段重复的情况。
工作中遇到一个问题,就是mysql的自增id auto increment获取到的不是最新的,这个问题只会在mysql8.0版本遇到。
查了一下原来是mysql8.0做了很多改动,其中一点就是tables不再是某个引擎表,而是改造成了视图。auto_increment和update_time列均引用自mysql.table_stats表。那么tables视图的信息不准确,根本原因就是table_stats表的统计信息并没有实时更新。
可以使用analyze table命令去人为的触发表信息收集,tables视图的信息会更新至当前准确的状态。
稍微了解下改动的原理:
为了最小化磁盘IO,MySQL8.0增加了一个字典对象缓存(dictionary object cache)。同时为了提高information_schema的查询效率,statistics和tables字典表的数据缓存在字典对象缓存中,并且有一定的保留时间,如果没超过保留时间,即使是实例重启,缓存中的信息也不会更新,只有超过了保留时间,才会到存储引擎里抓取最新的数据。同时,字典对象缓存采用LRU的方式来管理缓存空间。
缓存时间就是information_schema_stats_expiry的值,默认是86400。
改动的方法就是把information_schema_stats_expiry设置成0
我这边只有一个地方需要用到auto increment,所以是在SESSION级别改的information_schema_stats_expiry
1 | SET SESSION information_schema_stats_expiry=0 |
两个用到queue的项目线上突然经常偶发性的发送数据库死锁的报警,先说一下背景,
laravel版本是5.6,queue用的是数据库驱动,报错信息如下
1 | SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction (SQL: delete from `jobs` where `id` = 110894) |
初步怀疑是多线程同时消费造成的(事实上也是),这里有一点需要注意,laravel用数据库驱动的queue最好只开一个worker,
不然有概率出现死锁的问题,如果驱动替换成redis就不会有相关问题,用redis很流畅,建议优先用redis。
我这个问题是因为公司的k8s配置有问题,有几个pod就有几个worker,刚好释放pod的脚本出问题了,就出现了多个worker。
说这么多重点就是一个,如果queue用的database驱动,最好就开一个worker,这个是文档上没有重点说明的。
相关参考资料
https://github.com/laravel/framework/issues/7046
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true