Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Scripts MySQL no docker-entrypoint-initdb não são executados


Você deve limpar data_volume antes de executar o container e os arquivos sql serão executados. Este volume data_volume pode ser removido usando o comando:docker volume rm data_volume .

A causa raiz do seu problema pode ser encontrada em docker-entrypoint.sh . Quando você executa um contêiner mysql, ele verifica o diretório mysql /var/lib/mysql existe ou não. Se o diretório não existir (execute-o pela primeira vez), ele executará seus arquivos SQL.
    if [ ! -d "$DATADIR/mysql" ]; then
        //Some other logic here

        for f in /docker-entrypoint-initdb.d/*; do
            case "$f" in
                *.sh)     echo "$0: running $f"; . "$f" ;;
                *.sql)    echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;;
                *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
                *)        echo "$0: ignoring $f" ;;
            esac
            echo
        done 

Você pode obter mais detalhes em Fonte do Dockerfile