greatsql的entrypoint相关问题
本帖最后由 Jnu2021 于 2024-11-18 10:24 编辑原来默认的是docker-compose.yml 里面没有设置entrypoint, 所以默认是greatsql-init.sh启动,可以启动并部分初始化;
但是docker-entrypoint-initdb.d里面的初始化文件并不能执行完全,自定义的数据库只初始化了部分表和数据。
现在改成手动指定entrypoint文件直接启动不了了?请问有什么问题呀,是用户和用户组的问题吗?我看用户和用户组里没有mysql
启动的start.sh
chown mysql:mysql /etc/my.cnf
exec /greatsql-init.sh mysqld(这里不需要改成greatsql吧?)
用的docker-compose文件:
version: '3'
services:greatsql:
image: greatsql
container_name: greatsql
env_file:
- ../../data/greatsql/config/greatsql.env
ports: - "3306:3306"
volumes:
- ../../data/greatsql/config/my.cnf:/etc/my.cnf
- ../../data/greatsql/config/my.client.cnf:/etc/my.client.cnf
- ../../data/greatsql/init:/docker-entrypoint-initdb.d/
- ../../data/greatsql/sh/start.sh:/start.sh
entrypoint: "bash /start.sh"
docker-entrypoint-initdb.d 里面是初始化数据,命令行如下
bash-4.4# cd docker-entrypoint-initdb.d/
bash-4.4# ls
1_init_plugin.sql2_init_user.sql3_init_my_cnf.shinit.sql
greatsql-init为原版,未进行任何改动:
下附greatsql-init.sh 里面的docker-entrypoint-initdb.d 相关部分命令
if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then
(与这里的$1 = mysqlId有关吗?需要改成greatsql吗)
mkdir -p /docker-entrypoint-initdb.d
ls /docker-entrypoint-initdb.d/ > /dev/null
for f in /docker-entrypoint-initdb.d/*; do
process_init_file "$f" "${mysql[@]}"
done
这是GreatSQL的Dockerfile:https://gitee.com/GreatSQL/Great ... GreatSQL/Dockerfile
在这里已经定义了 ENTRYPOINT,所以不能通过 compose 再自定义,可以先使用我们提供的 comopse 模版:https://gitee.com/GreatSQL/Great ... pose/mgr-3nodes.yml
先把基础功能都先跑通体验完,再进行自定义调整。
yejr 发表于 2024-11-18 10:44
这是GreatSQL的Dockerfile:https://gitee.com/GreatSQL/Great ... GreatSQL/Dockerfile
在这里已经定义了 ...
就是现在docker-entrypoint-initdb.d里执行的过程在哪里能看到啊?fn -500 greatsql 看不到,error.log也看不到, 是必须要引入automake.sh吗,主要是里面有很多配置不知道怎么定义,所以能不引入最好 yejr 发表于 2024-11-18 10:44
这是GreatSQL的Dockerfile:https://gitee.com/GreatSQL/Great ... GreatSQL/Dockerfile
在这里已经定义了 ...
还是有别的log能看到初始化过程中sql文件的初始化过程的啊? Jnu2021 发表于 2024-11-19 09:43
还是有别的log能看到初始化过程中sql文件的初始化过程的啊?
docker logs xx(容器名) 可以查看标准输出日志
或者进入容器查看里面的系统日志、GreatSQL日志
再次强调下,请先用我们提供的标准镜像和docker compose yaml模板把基本功能跑通后,先熟悉基础功能,再进行自定义调整修改,否则是一头雾水。 yejr 发表于 2024-11-19 11:05
docker logs xx(容器名) 可以查看标准输出日志
或者进入容器查看里面的系统日志、GreatSQL日志
这个日志我会看,error.log 如下,但是没有开头的日志,mysql是有的
2024-10-31T01:58:47.400269-00:00 1 Percona XtraDB (http://www.percona.com) 8.0.32-23 started; log sequence number 32593066
2024-10-31T01:58:47.401685-00:00 1 InnoDB initialization has ended.
2024-10-31T01:58:47.429647-00:00 1 Data dictionary restarting version '80023'.
2024-10-31T01:58:47.699891-00:00 1 Reading DD tablespace files
docker logs xxx 是只有一行那个invalid
现在greatsql已经启动成功了,基础的命令我都熟悉了,现在的问题是没找到 : greatsql-init.sh 的执行日志,
导致我现在不知道自定义的初始话脚本为什么会部分执行失败?
需要引入automake.sh吗 或者在我不知道的地方有这部分日志?
Jnu2021 发表于 2024-11-19 11:53
这个日志我会看,error.log 如下,但是没有开头的日志,mysql是有的
2024-10-31T01:58:47.40 ...
可以自己修改 greatsql-init.sh 脚本,加入日志记录功能,然后重新制作镜像
页:
[1]