记录一次修复数据库的心酸
起因
2023.9.7左右,因为halo愚蠢的调和机制,导致了频繁的数据库访问
但是云数据库是有次数限制的,结果月初次数限制就不够了
然后halo就崩了,咱就是说干嘛不加缓存呢,sb吧
思路
因为后期文章一多,调和所访问的次数肯定也很多,这就导致我只能使用本机数据库,而仅使用云数据库进行实时备份
于是我找到了这个项目
可以增量备份,古德,就是我要的
初期
看到这个项目,我就知道,就是它了
看了一下,支持postgre,ok
然后直接docker走起,先把postgre跑起来
docker跑起来了,导入原有数据,启动halo!
不出意外,就出意外了
halo无法启动
一看log,端口占用无法启动
好家伙,halo的docker还加了个数据库中间件叫halodb
用的也是5432端口,我想不明白了,你docker内网连不行吗干嘛要绑定外网端口,有病吧
算了,那我改postgre的映射吧,结果docker映射还巨难改,不如重新创建一个
到这里第一天就过去了
中期
第二天在新端口(5431)弄好了数据库
halo,启动!
数据库拒绝连接
what?
我陷入怀疑,这特么怎么就拒绝连接了
远程连接,成功
奥,恍然大悟,我用的``127.0.0.1`
估计是docker对于回环网址有什么毛病
直接上ip,哈哈哈哈哈哈哈
启动!
成功!
然后就愉快地启动dbsyncer
失败!根本跑不起来
后期
第三天,我看了wiki,说是特定jdk版本才能用
我换了好几次12,14,16,1.8.0_3XX
最后还得用官方建议1.8.0_202
开始同步!
失败,用户没有权限
行,我exec进docker提权,这里还叫chatGPT帮我
我发现GPT有时候比简中更加方便,还更加准确
开始同步!
失败,日志级别不够
行,我又exec进去改配置
终于成功了
至此,所有配置完成,但是dbsyncer好像对性能有点影响?而且只能用jdk1.8.0_202启动,真是抽象,不懂他当时怎么想的