内存太少又没有swap导致MySQL挂了?

把blog从vultr的5刀主机搬迁到aws lightsail最便宜的3.5刀主机上面之后,经常发现blog无缘无故挂了,首页显示“Error establishing a database connection”,实情是MySQL挂了。究其原因,应该是新的主机比较廉价,所以内存只有512MB,虽然我的blog访问量不大,但是这配置跑MySQL还是有点够呛。原本打算做个快照升级到1G的机器。不过上网查了一下,可以尝试启用swap来优化一下。果然lightsail上面的Amazon Linux缺省是没有swap的,512MB内存用光了,MySQL就直接完蛋了。

于是在花钱升级之前,先试试启动swap看看能不能拯救一下穷逼吧。具体操作参考:

如何使用交换文件分配内存充当 Amazon EC2 实例中的交换空间?

AWS EC2添加SWAP分区

观察多几天看看效果如何先……起码上面那篇上传6张图片的帖子终于能正常发布了

又将blog迁移了一下

之前所在的那个VPS服务商访问起来还是有点慢,于是又将blog搬到AWS底下的lightsail服务上面去,胜在便宜和速度还可以,可用区多。这次折腾比上一次从DH迁走要稍微简单一点,起码数据库可以自己导入导出,文件也直接备份scp过来解开就好了,折腾的时间还是少一些。就是域名DNS改指向和重新安装SSL证书又稍微花了点功夫而已。特此记录并测试一下。

将blog从Dreamhost那里迁移出来

Dreamhost的服务明年一月到期了,那个用了10几年的share host性能太低,可玩性已经没有VPS高,连回国内的带宽也窄,而且还贵。决定就此迁移,不再续约了。

昨天上午先把sunnyblog.net的域名转移了托管商,放到namesilo那里。

然后昨晚开始在另外一个VPS上面建LNMP环境。

今天一早开始,废寝忘食终于把自留地的blog迁移到一个可控的lnmp环境上了。十几年前挖下的大坑,旧站回国带宽有问题,MySQL数据库字符集不对直接用SQL导乱码,nginx的rewrite又跟apache不一样,各种无厘头,别人不能理解无法借鉴的奇葩坑。还好,昨晚新环境安装没什么坑了。最终内容都保住了,站内配置和插件那些重新整理一遍,域名指回来了。

自留地的文字内容起码能保住了,但是里面有些图片要么放在别的网站,要么是放在之前建的一个gallery应用里面,那块不迁移了,大红X就大红X吧。先自我陶醉一把再说,虽然自己的东西没有什么压力,但也累死个人了。自己记个操作步骤,包括走错路的都记录成一个txt,罄竹难书的感觉。

 

终于发现了一个删除信任里残留证书的方法

之前用Shadowrocket的HTTPS解密需要导入证书功能,但是换iPhone X的时候,恢复备份之后发现证书所依赖的描述文件没有被恢复过来,但是信任证书居然还残留在里面删不掉,虽说忽略掉不打开信任开关也没问题,但是比较还是会逼死强迫症的。翻查网络和询问作者都一直误解,终于今天在Telegram上面Shadowrocket的作者推送了这个链接,问题终于得到了解决!

https://apple.stackexchange.com/questions/300203/how-can-i-delete-a-certificate-that-got-restored-from-a-backup-under-ios-10-11

With iOS, certificates are installed as part of profiles. Deleting a certificate means removing the profile.

When an iPhone with profiles is backed up, and then the backup is restored to a new device, the profiles are no longer visible under Settings > General > Profiles. So, they can’t be deleted via the usual way.

The certificates however get restored to the device. One can see them e.g. under Settings > General > About > Certificate Trust Settings.

Hence my question: How can these certificates be deleted from the device?

I found a certificate in my iOS device’s Certificate Trust Settings. And it was not be found in Profiles. Finally I remove it by add the cert file again, and then I can found and remove it in Profiles.

At first, I can’t found the cert file, because this CA was installed years ago. So I did these things:

Backup iPhone to Mac, View backup file by some software (I used iMazing)
Find TrustStore.sqlite3 in Backup/KeychainDomain/ and export it to HOME DIR.
Use this project https://github.com/ADVTOOLS/ADVTrustStore to export certfile

./iosCertTrustManager.py -t ~/TrustStore.sqlite3 -e ~/foo.crt
Airdrop or Email this crt file to iOS device, and install it.
Find it in Settings > General > Profiles and Remove it.
It disappear in “Certificate Trust Settings”
Done.

GitHub上面的这个ADVTrustStore工程居然还有在更新,有鉴于此,我把我到2021年7月1日还能用(实测可以解开iOS 14.6备份的TrustStore.sqlite3文件)的旧版本打包在这里吧。

折腾了一下,将wordpress改成HTTPS访问了

在Dreamhost的管理界面可以很简单的添加Let’s Encrypt的证书,然后各种修改,反正现在访问这里已经是慢的,所以也就不在乎HTTPS那点微不足道的损耗了。

当然完全修改之后的后遗症估计是会有,到时候再慢慢捉虫子吧。

参考资料是:
https://www.xieyidian.com/4155

https://www.hrwhisper.me/secure-your-wordpress-with-a-free-ssl-certificate/