本帖最后由 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.sql 2_init_user.sql 3_init_my_cnf.sh init.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 |
yejr
3 天前
| ||
Jnu2021
前天 09:43
| ||
Jnu2021
前天 09:43
| ||
yejr
前天 11:05
| ||
Jnu2021
前天 11:53
| ||
yejr
前天 12:38
| ||
合作电话:010-64087828
社区邮箱:greatsql@greatdb.com