gpt4 book ai didi

java - DotCMS Docker MySQL 500

转载 作者:行者123 更新时间:2023-11-30 06:30:08 24 4
gpt4 key购买 nike

我正在尝试构建一个 docker-compose 文件来开发 dotcms 站点。

我的 docker-compose.yml 中有以下内容:

version: "3"
services:
dotcms:
image: openjdk
command: /app/bin/startup.sh run
ports:
- 8080:8080
volumes:
- ./:/app
depends_on:
- db
db:
image: mysql
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0 --lower_case_table_names=1
volumes:
- ./db:/var/lib/mysql
ports:
- 3308:3306
environment:
MYSQL_ROOT_PASSWORD: dotcms
MYSQL_DATABASE: dotcms
MYSQL_USER: dotcms
MYSQL_PASSWORD: dotcms

运行后docker-compose up

当我尝试加载localhost:8080时我收到 500 错误。我查看dotcms database有一个名为 db_version 的表然而这就是全部了。没有创建其他表。

我尝试删除 dotcms数据库并重新创建然后运行 ​​docker-compose up再次出现,但我遇到了同样的问题。

我还尝试删除 ./db文件夹(mysql 数据库的已安装卷)并重新运行,再次出现同样的问题。

更新

我已经更新了dotcms要运行的容器:command: sh -c "sleep 30 && /app/bin/startup.sh run"

我还添加了--general_log=1 --general_log_file=/var/log/mysql/query.logdb command

我删除了本地db文件夹并运行 docker-composer又起来了。

仍然得到相同的结果。以下是日志:

dotcms.log:https://pastebin.com/5WnrarK8
catalina.log:https://pastebin.com/Z3vHbnp2
本地主机.log:https://pastebin.com/S2CSPqxQ

来自db容器

mysql.error.log: https://pastebin.com/4bYwB2Z2
mysql.query.log:https://pastebin.com/maDUXFm5
(这个查询文件非常大,我删除了第一个条目显示之前的所有内容: mysql-connector-java-5.1.37

docker logs <container id>
db.container.log:https://pastebin.com/Wz7aRhVc
dotcms.container.log:https://pastebin.com/qNVBfTpf

最佳答案

我不是 mysql 专家,但日志表明这是一个与 dotCMS 无关的 mysql 问题。 mysql.error.log显示mysql在启动后几乎立即关闭 - 这意味着它可能在dotCMS有机会访问数据库之前关闭,导致dotCMS查询失败。

考虑 mysql.error.log 的这一部分(pastebin 中的第 38-44 行):

2017-09-19T08:13:37.664410Z 0 [Note] mysqld: ready for connections.
Version: '5.7.19' socket: '/tmp/tmp.Dlc2I8QgCt/mysqld.sock' port: 3306 MySQL Community Server (GPL)
2017-09-19T08:13:37.664422Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check.
2017-09-19T08:13:37.664430Z 0 [Note] Beginning of list of non-natively partitioned tables
2017-09-19T08:13:37.664491Z 0 [Note] Giving 1 client threads a chance to die gracefully
2017-09-19T08:13:37.664553Z 0 [Note] Shutting down slave threads
2017-09-19T08:13:37.664684Z 3 [ERROR] 1053 Server shutdown in progress

[Note] mysqld:ready forconnections 消息和 [ERROR] 1053 Server shutdown in Progress 消息之间几乎没有时间。并且 dotcms.log 错误消息中显示的 mysql 查询根本没有显示在 mysql.query.log 中(或者至少在您发布的部分中),表明它从未到达 mysql 数据库。

因此,如果您还没有这样做,我建议您尝试在 Docker 容器中启动 mysql,而不启动 dotCMS,并检查日志以确保它启动并保持正常运行。然后添加dotCMS启动,如果这导致mysql出现问题,请比较有和没有dotCMS的mysql日志,看看有什么变化。

除此之外,请仔细检查您的 dotCMS context.xml 文件(位于 /dotserver/tomcat-8.0.18/webapps/ROOT/META-INF 中)以确保您已正确配置访问 mysql 数据库。

关于java - DotCMS Docker MySQL 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46334195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com