DevsDawn
DevsDawn

开发
文章归档

MySQL Incorrect key file for table 报错排查

近期一个项目在运行过程中数据库经常出现Incorrect key file for table 'xxx.MYI'; try to repair it. MySQL Errno: 126的错误,导致项目完全无法正常运行。业主急死,打了十几个电话过来,被迫在下班的路上继续加班:joy:。 首先通过搜索找到了这两种可能性: 一种可能的原因是您的查询获取的数据大于您的/tmp文件夹(即用于存储临时表的文件夹)的大小。解决方法是更改/tmp文件夹的位置,或者增加/tmp文件夹的空间。 另一种可能的原因是表损坏。解决方法是重新创建或修复…

2023-06-12  

解决MySQL in select子查询无法使用索引问题

近期在编写一个业务逻辑,需要从订单表中找出所有手机号属于某一个用户的订单,而每个用户可关联多个手机号,于是有以下的查询语句: select * from mall_order where phone in (select phone from user_phone where user_id = #{id]}) 以上mall_order表的phone字段和user_phone的user_id字段均已添加索引。 然而,通过对以上语句explain后发现索引失效,语句对mail_order进行了全表查询,并没有使用到已经添加的phone索引。 经过排查,发现mall_order表和user_phone表的phone字…

2022-12-07  

解决easyexcel导出表格慢问题

近期一个项目中出现使用easyexcel导出表格非常慢的情况。数据量约10w行,50个列,排除从数据库取出和处理数据的时间,调用ExcelWriterBuilder的doWrite方法后需要1分多钟的时间才能够生成好文件,导致客户端经常请求超时,无法顺利导出文件。 通过排查,发现项目之前的开发封装的导出类在导出时使用了LongestMatchColumnWidthStyleStrategyhandler,该handler会根据表格内宽度最大的单元格自动设置列宽,而该功能需要遍历所有单元格的数据来计算宽度来实现,因而十分耗费性能和时间…

2022-11-09  

Vue项目ChunkLoadError报错解决

问题信息 近期项目出现大量以下这种类型的报错,显示该js文件找不到,并且用户反馈点击后整个页面卡住,但是刷新页面后就不会再报错: ChunkLoadError Loading chunk chunk-9f35075c failed. (missing: https://***.com/js/chunk-9f35075c.4032e0dc.js) 以及下面这种报错: SyntaxError Unexpected token '<' 问题分析 尝试直接访问该链接,也是出现文件不存在的情况,而被伪静态规则转发访问到首页,chunk loader加载后发现不是正确的js文件,报…

2022-10-29  

小程序setStorageSync:fail write DB data fail报错问题处理

微信小程序线上报出以下错误: Error: MiniProgramError APP-SERVICE-SDK:setStorageSync:fail write DB data fail Error: APP-SERVICE-SDK:setStorageSync:fail write DB data fail 客户端手机型号和系统版本为iPhone 12(iOS 14),微信版本为8.0.29,SDK版本为2.27.0,经搜索得知wx.setStorageSync在部分微信苹果客户端上有几率出现本地数据库损坏,导致报出以上的错误。 虽然该公告显示7.0.7以前的版本才存在这个问题,但是社区里也有部分开发者反馈在8.0.x版本中也有出现过此…

2022-10-24  

修复date-fns-tz导入失败问题

在执行yarn build打包node项目时,出现以下错误: [vite]: Rollup failed to resolve import "date-fns/_lib/cloneObject/index.js" from "node_modules/date-fns-tz/esm/formatInTimeZone/index.js". This is most likely unintended because it can break your application at runtime. If you do want to externalize this module explicitly add it to `build.rollupOptions.external` error during build: Error: [vite]: Rollup failed to resolve import "date-fns/_lib/clon…

2022-09-23  

解决23:59:59.999时间存入MySQL变为00:00:00问题

问题 在使用Hutool的DateUtil.endOfDay方法时,生成的时间戳为2022-09-23 23:59:59.999,在写入MySQL数据库后字段值会变为2022-09-24 00:00:00。 原因 TIMESTAMP类型字段存储精度默认精确到秒,在存入带有毫秒数据时,毫秒数大于500时会自动进位。同理,DATETIME类型默认也是精确到秒的: UPDATE `test_table` SET `test_time` = '2022-09-23 23:59:59.999' WHERE `id` = 1; // 2022-09-24 00:00:00 UPDATE `test_table` SET `test_time` = '2022-09-23 23:59:59.499' WHERE `id…

2022-09-19  

git修改已提交记录的邮箱和作者名

修改指定提交之前 git rebase -r <some commit before all of your bad commits> \ --exec 'git commit --amend --no-edit --reset-author' 修改指定邮箱的提交 git filter-branch --env-filter ' OLD_EMAIL="[email protected]" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="[email protected]" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORR…

2022-03-25  

修复SSL peer certificate or SSH remote key was not OK问题

若确定证书未过期且非自签证书,可以先确认服务器证书是否为Let's Encrypt颁发的,大概率为Let's Encrypt根证书更新后,系统没有及时更新根证书所致,可以运行以下指令更新根证书。 apt-get update apt-get install ca-certificates

2022-03-10  

Git 小技巧 - 忽略不想要提交的本地修改

忽略本地修改 在一个多人协作的 Git 仓库里,有些情况下远程仓库中可能会存放一些 IDE 或者 Build 工具的配置文件,以方便所有参与的同学获得一致的体验。当然这些文件会从大局出发,加入的通常都是比较通用的配置项,不一定能完全满足你个人的需求。一旦你自己对这些文件做了个人定制,它们就会被 Git 识别为本地修改,不但本地的 git status 或 change list 一直会进行恼人的提醒,而且每次 git add 文件时还要小心翼翼的避开。 那么,有没有方法告诉 Git 我们可以忽略这些文件的…

2022-03-02  

Sentry部署配置调优

在部署Sentry自托管版时,默认的配置对低配置的服务器不太友好,可以通过调整如下参数优化: 通过修改Kafka启动参数限制内存占用,docker-compose.yml增加: zookeeper: environment: KAFKA_HEAP_OPTS: "-Xmx512M -Xms256M" kafka: environment: KAFKA_HEAP_OPTS: "-Xmx512M -Xms256M" 通过修改Health Check间隔降低资源占用,.env修改: HEALTHCHECK_INTERVAL=60s HEALTHCHECK_TIMEOUT=120s HEALTHCHECK_RETRIES=3

2022-03-02  

journalctl显示日志颜色

在使用journalctl查询日志时输出的日志默认不带有颜色,如需显示日志颜色,只需追加--output=cat参数即可正常显示日志颜色。 journalctl -fu [server_name] --output=cat

2022-02-24  

git忽略本地文件的改动

assume-unchanged方法 忽略跟踪: git update-index --assume-unchanged /path/to/file 恢复跟踪: git update-index --no-assume-unchanged /path/to/file skip-worktree方法 忽略跟踪: git update-index --skip-worktree /path/to/file 恢复跟踪: git update-index --no-skip-worktree /path/to/file

2022-01-23  

解决使用git ssh时出现的no mutual signature algorithm问题

问题 在使用git ssh时,ssh已经添加到帐号中,但始终提示Permission denied (publickey). 在git-bash下执行以下指令,将[email protected]更换为仓库的ssh地址。 ssh -vT [email protected] 可以看到有如下的错误输出: Offering public key: /c/Users/**/.ssh/id_rsa RSA SHA256:*** send_pubkey_test: no mutual signature algorithm 原因为OpenSSH较新版本上不再支持RSA算法的密钥,但可以通过添加配置强制启用。 解决方法 修改文件:C:\Users\**\.ssh\config,不存在则新建,写入…

2021-11-30  

vite项目在二级目录下的部署

使用history路由模式,假定项目在admin目录下,需要使用类似于如下url访问: https://myapp.com/admin/auth/login https://myapp.com/admin/dashboard 修改 公共基础路径,适配静态文件。 vite.config.js export default defineConfig({ base: '/admin/', // ... }); 修改路由前缀,内部路由跳转时追加上前缀。 src/router/index.ts const router = createRouter({ history: createWebHistory('/admin/'), routes }) Nginx 配置。 location /admin { …

2021-11-29  
加载更多