This commit is contained in:
孙小云 2025-06-12 16:02:23 +08:00
parent 0fbaee1ae4
commit b8dd63e362
1 changed files with 21 additions and 3 deletions

View File

@ -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