docker搭建JPress,在配置页填写已经设置的mysql用户和密码,但是报错如何解决?

Eichner
  • 48

问题描述

新手参考基于docker搭建个人博客jpress这篇博客,用docker搭建JPress,在终端设置了mysql的密码:
docker run --name bolgmysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=bolgdb hub.c.163.com/library/mysql
JPress在8080端口跑起来了,卡在了配置页:
截屏2021-02-01 下午4.32.47.png
然而,报错说这个账号密码不对。

问题出现的平台版本及自己尝试过哪些方法

macOS:Big Sur11.1
Docker: 20.10.2

期待的结果

本来我是本地编译JPress,也是跑起来了,到设置页发现不支持mysql8.0,我又不太想卸载8.0安装5.7版本的。于是从头再来一遍用docker搭建,没想到在docker里设置好了账户密码还是报错。所以真的就是和mysql杠上了吗?必须要卸载本地的mysql8.0吗?

希望这是关于JPress的最后一个提问。

谢谢!

回复
阅读 1.2k
4 个回答
✓ 已被采纳

看起来可能是网络的问题(宿主机和 Docker 容器不属于一个网段)。

从描述看来,你的宿主机(本机)上安装有 MySQL 8.0,然后使用 Docker 部署了 MySQL 5.7。再结合你给的文章链接来看,JPress 应用应该也是容器化部署在 Docker 环境中。
那么理论上你使用 127.0.0.1 并不能访问到期望的 MySQL 5.7 容器。

所以可以尝试检查一下 MySQL 5.7 容器的网络地址后重试一下

如果你的 JPress 也是运行在 docker 里面的话,IP不能用 127.0.0.1 ,得用 host.docker.internal 或者使用 docker-compose 来编排,直接用 service 名字作为 IP。

看起来像是网络问题,运行mysql容器的时候加上--network host 指定使用主机网络,后面前端界面的主机栏填写宿主机的ip地址
docker run --name bolgmysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=bolgdb --network host hub.c.163.com/library/mysql

换个端口号试试,-p 33057:3306

宣传栏