diff --git a/init/3.mysql.sh b/init/3.mysql.sh index 408560e..e8aa448 100755 --- a/init/3.mysql.sh +++ b/init/3.mysql.sh @@ -13,6 +13,19 @@ if [ -z "$MYSQL_PORT" ]; then exit 1 fi +rm -fr ./mysql-config +# 创建MySQL配置目录 +mkdir -p ./mysql-config + + +# 创建MySQL配置文件 +cat > ./mysql-config/my.cnf << EOF +[mysqld] +sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION +character-set-server=utf8mb4 +collation-server=utf8mb4_unicode_ci +EOF + if docker ps -a | grep -q ${MYSQL_NAME}; then echo "停止并删除已存在的 MySQL 容器..." docker stop ${MYSQL_NAME} >/dev/null 2>&1 @@ -24,14 +37,19 @@ docker run -d \ --network $NETWORK \ -p ${MYSQL_PORT}:3306 \ -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \ --e MYSQL_CHARACTER_SET_SERVER=utf8mb4 \ --e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci \ --e MYSQL_SQL_MODE="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" \ -v ${MYSQL_DATA}:/var/lib/mysql \ +-v $(pwd)/mysql-config/my.cnf:/etc/mysql/conf.d/my.cnf \ --env TZ=Asia/Shanghai \ --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ --memory ${MYSQL_MEMORY} \ --restart unless-stopped \ ${MYSQL_IMAGE} +# 等待MySQL启动 +echo "等待MySQL启动..." +sleep 10 + +# 验证SQL_MODE设置 +docker exec ${MYSQL_NAME} mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "SELECT @@sql_mode;" + docker ps \ No newline at end of file