根据现有的mysql镜像的entrypoint.sh
,容器启动时,若/var/lib/mysql
文件夹存在,则不再进行初始化操作,不会再使用最新的MYSQL_ROOT_PASSWORD
创建root账号。
#!/bin/bash
set -e
# if command starts with an option, prepend mysqld
if [ "${1:0:1}" = '-' ]; then
set -- mysqld "$@"
fi
if [ "$1" = 'mysqld' ]; then
# Get config
DATADIR="$("$@" --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
if [ ! -d "$DATADIR/mysql" ]; then
...#若存在/var/lib/mysql目录,则进行初始化操作
fi
# 否则直接开始运行mysqld
chown -R mysql:mysql "$DATADIR"
fi
exec "$@"