之前不小心把禅道连接的数据库mysql给删除了,后来由于另一个同事的项目部署,在3306端口上部署了另一个项目的数据库,所以我就想在3307:3306上重新部署一下禅道的数据库(这就要多亏了之前部署数据库的时候,做好了数据卷持久化,只需要重新连接之前的储存文件就可以恢复数据了)
数据持久化:

重新启动mysql数据库:
docker run -d
--name mysql-latest
-p 3307:3306
--restart=always
-v /opt/mysql/data:/var/lib/mysql
-v /opt/mysql/conf/my.cnf:/etc/mysql/my.cnf
-v /opt/mysql/logs:/var/log/mysql
-e MYSQL_ROOT_PASSWORD=输入你自己的密码
mysql:latest
这一步之后,就开始了我一整天的噩梦
我先是查看了禅道pod的日志

从日志上来看,已经能够成功的连接到数据库,并且正常启动,但是当我从浏览器访问禅道的页面之后,就显示了该画面

我用ai查询了一下该错误,显示为权限错误

按照步骤调整权限之后无任何变化,中间经过无数稀奇古怪且无用的调试之后
它又告诉我可能是密码中的特殊符号被识别为特殊符号,无法被识别,让我去掉密码中的特殊符号

然而这一步还是不起作用,但是经过这步操作之后,我发现修改了配置文件中的密码之后,浏览器访问中的报错仍然没有任何改变,即网页中显示的密码还是包含特殊字符,这让我想到我在配置文件中修改的端口号是不是也没有映射到容器内部去,禅道还是使用的是之前3306的端口

进入禅道容器内部
kubectl exec -it zentao-79bf577f87-4br8s -- /bin/bash
进入config文件夹
打开my.php

可以看到端口还是3306,果然问题是出在这里,修改一下,保存退出

重新通过浏览器访问禅道,发现能够正常运行了

问题解决
