DevsDawn
DevsDawn

技巧
文章归档

解决使用宝塔备份数据库时出现死锁问题

在使用宝塔面板内建的数据库备份功能备份数据库时,如果数据库数据比较大,备份耗时长,则在备份途中很可能会出现应用程序的数据库事务操作出现死锁或超时的问题,可通过以下方法解决。 打开宝塔安装目录下的/www/server/panel/class/panelBackup.py文件,搜索 backup_shell = "'{mysqldump_bin}' --routines... 所在位置,添加--single-transaction参数即可。

2024-01-10  

Linux下swap的配置和使用

swap是Linux系统中的一种虚拟内存技术,它可以在物理内存不足时,将一部分硬盘空间作为内存使用,从而提高系统的性能和稳定性。本文将介绍如何在Linux下配置和使用swap。 配置swap 配置swap有两种方式,一种是使用分区,一种是使用文件。使用分区的优点是速度快,缺点是需要预留硬盘空间;使用文件的优点是灵活,缺点是速度慢。下面分别介绍这两种方式。 使用分区 如果你在安装Linux时已经为swap分配了一个分区,那么你可以直接跳过这一步。如果没有,你可以使用fdisk或者其他工…

2023-07-07  

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  

修改已有Docker容器的DNS

在Docker中,如果创建容器时没有指定相关参数,etc/docker/daemon.json中也没有进行相关配置的话,容器的DNS配置默认复制宿主机的配置。 容器创建后,即使宿主机修改了DNS,容器的DNS配置仍然会保持创建时的状态,不会跟随宿主机的修改。 如需修改容器DNS,有以下两种方法: 1. 进入容器手动修改/etc/resolv.conf 通过docker exec -it <name> /bin/bash进入容器,手动修改/etc/resolv.conf文件。 2. 宿主机修改对应容器的配置文件 首先通过docker ps确定容器id,记为cont…

2022-12-15  

Linux SSH设置超时自动断开连接

Linux的SSH会话默认没有登录超时时间限制,为了避免运维人员完成运维工作后忘记断开SSH连接,提高服务器的安全性,有时候我们希望Linux的SSH会话能在用户空闲一段时间没有操作后自动断开连接,可使用以下方式。 编辑/etc/profile文件,末尾加入以下内容: # 超时时间,这里设置为3600秒(1小时) export TMOUT=3600 # 设置只读,防止参数被手动修改 readonly TMOUT 保存并退出,该配置会对后续的新会话生效。也可以使用以下指令立即对当前会话生效: source /etc/profile 使用…

2022-12-03  

解除windows自动文件下载阻止的应用

使用regedit编辑注册表,进入以下位置删除对应项即可: HKEY_CURRENT_USER\Software\Policies\Microsoft\CloudFiles\BlockedApps

2022-04-07  

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  

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

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

2022-03-02  

windows docker修改镜像存储位置

在使用windows docker时,默认的虚拟机镜像存储路径位于C盘,而随着使用镜像大小也会随之增长,难免会产生空间不足的情况,影响使用,我的docker目前的占用已经达到了40G,因此需要对windows docker的默认存储位置进行修改。 windows下docker wsl镜像存储于: C:\Users\your_user_name\AppData\Local\Docker 如需移动到其它目录,只需先停止docker服务后,移动此文件夹内容到新位置,然后在原位置建立到新位置的软链接即可,例如把文件夹移动到D:\Docker文件夹下: mklink /j "…

2022-01-21  

Nginx搭建DNS over HTTPS(DoH)代理

近期遇到业务需求,需要在多台内网机器上部署应用,内网机器上连接互联网有严格限制,只能连接特定几个IP段以及指定的几个业务域名。 这些应用使用了DNS over HTTPS(DoH)进行业务域名的解析,需要配置一个DoH的地址,但内网机器显然是无法访问互联网上提供的DoH服务的。在该内部网络中设置了DMZ区,访问外部网络没有限制,于是决定在DMZ主机上使用Nginx部署一个DoH代理服务给内网机器使用。 由于服务器环境在国外,此处选择Cloudflare提供的1.1.1.1公共解析服务。为了保证响应结果…

2021-11-28  

cloudflare使用多级域名出现SSL错误问题

问题 在Cloudflare上使用三级(或多级)域名,通过https访问时出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误,且源站已经部署有效证书,通过http则能正常访问。 原因 如果在Cloudflare上使用的是免费提供的SSL证书(Cloudflare Universal SSL),则是证书不支持所致。 Cloudflare默认提供的免费证书(Cloudflare Universal SSL)只支持根域名(yourwebsite.com)以及二级泛域名(*.yourwebsite.com)。因此三级及以上的域名会报证书错误。 可以在Cloudflare控制台中的“SSL/TLS”→“…

2021-10-23  

解决cmd下无法直接运行.py文件的问题

在windows cmd下,出现无法通过输入xxx.py执行python脚本,而通过python xxx.py则可以运行的问题。可以通过以下方法解决: assoc .py=Python ftype Python="C:\PATH_TO_PYTHON\python.exe" "%L" %* 将PATH_TO_PYTHON修改为你的python所在目录即可。修改后,可以直接在cmd下输入xxx.py直接运行python脚本,而无需在前面添加python。

2021-04-02  

ubuntu调整swap交换空间使用优先级

在ubuntu中,使用vm.swappiness来控制swap空间的使用优先级,取值为0-100,值越大,则表示为更加积极地使用swap分区。 查看当前值: cat /proc/sys/vm/swappiness 临时修改(重启后失效): sysctl vm.swappiness=100 永久修改: vi /etc/sysctl.conf 在文件末尾添加 vm.swappiness=100

2020-11-30  

iptables显示规则命中速率

之前一直使用watch 'iptables -vxL'来查看iptables规则实时状况,虽然通过这样查看累计数能够大概了解到规则命中的情况,但只能通过估算来得知命中速度,在有时候不太方便。 在优化iptables规则时,偶然阅读 Cloudflare 的 How to drop 10 million packets per second 这篇文章,发现其使用了mmwatch的工具,可以把iptables的规则从累计命中数转为每秒速度。 $ mmwatch 'iptables -L -v -n -x | head' Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes ta…

2020-03-27  

使用dpkg安装teamviewer时依赖问题解决方法

在使用dpkg安装teamviewer的deb包时, dkpg -i teamviewer_15.2.2756_amd64.deb 有可能提示由于依赖问题无法正常安装,此时需要执行: apt-get install -f 修复依赖,然后重新运行dpkg安装即可。 如果执行修复后,提示的操作是移除teamviewer,此时需要执行: apt-get update 更新源后再执行修复。

2020-02-22  
加载更多