2025-05-14 16:14:57 +08:00
|
|
|
source ../environment.sh
|
|
|
|
|
if [ -z "$NETWORK" ]; then
|
|
|
|
|
echo "错误: 未找到 NETWORK 环境变量"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
|
|
|
|
|
echo "错误: 未找到 MYSQL_ROOT_PASSWORD 环境变量"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "$MYSQL_PORT" ]; then
|
|
|
|
|
echo "错误: 未找到 MYSQL_PORT 环境变量"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2025-06-12 16:02:23 +08:00
|
|
|
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
|
|
|
|
|
|
2025-05-14 16:14:57 +08:00
|
|
|
if docker ps -a | grep -q ${MYSQL_NAME}; then
|
|
|
|
|
echo "停止并删除已存在的 MySQL 容器..."
|
|
|
|
|
docker stop ${MYSQL_NAME} >/dev/null 2>&1
|
|
|
|
|
docker rm ${MYSQL_NAME} >/dev/null 2>&1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
docker run -d \
|
|
|
|
|
--name ${MYSQL_NAME} \
|
|
|
|
|
--network $NETWORK \
|
|
|
|
|
-p ${MYSQL_PORT}:3306 \
|
|
|
|
|
-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \
|
|
|
|
|
-v ${MYSQL_DATA}:/var/lib/mysql \
|
2025-06-12 16:02:23 +08:00
|
|
|
-v $(pwd)/mysql-config/my.cnf:/etc/mysql/conf.d/my.cnf \
|
2025-06-04 09:24:34 +08:00
|
|
|
--env TZ=Asia/Shanghai \
|
|
|
|
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
2025-05-14 16:14:57 +08:00
|
|
|
--memory ${MYSQL_MEMORY} \
|
|
|
|
|
--restart unless-stopped \
|
|
|
|
|
${MYSQL_IMAGE}
|
|
|
|
|
|
2025-06-12 16:02:23 +08:00
|
|
|
# 等待MySQL启动
|
|
|
|
|
echo "等待MySQL启动..."
|
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
|
|
# 验证SQL_MODE设置
|
|
|
|
|
docker exec ${MYSQL_NAME} mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "SELECT @@sql_mode;"
|
|
|
|
|
|
2025-05-14 16:14:57 +08:00
|
|
|
docker ps
|