cat > install_mysql57.sh <<'EOF'
#!/bin/bash
set -e

# 定义部署目录
BASE_DIR="/data/mysql"

echo "===== 创建目录结构 ====="
mkdir -p ${BASE_DIR}/{conf,data,logs,tmp}

echo "===== 写入 docker-compose.yaml ====="
cat > ${BASE_DIR}/docker-compose.yaml <<'YAML'
version: "3.8"
services:
  mysql:
    image: mysql:5.7.35
    container_name: mysql
    restart: always
    command:
      [
        "mysqld",
        "--user=mysql"
      ]
    environment:
      MYSQL_ROOT_PASSWORD: yunzhisheng_rootPass123
      TZ: Asia/Shanghai
    ports:
      - "3306:3306"
    volumes:
      - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./data:/var/lib/mysql
      - ./logs:/var/log/mysql
      - ./tmp:/var/run/mysqld
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "5"
YAML

echo "===== 写入 my.cnf 配置 ====="
cat > ${BASE_DIR}/conf/my.cnf <<'CNF'
[mysqld]
server_id=1
# 路径
basedir=/usr
datadir=/var/lib/mysql
tmpdir=/var/run/mysqld
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid

# GTID binlog
gtid-mode=ON
enforce-gtid-consistency=TRUE
log_bin=/var/log/mysql/mysql-bin
binlog_format=row
binlog_cache_size=2M
max_binlog_cache_size=1G
max_binlog_size=128M
expire_logs_days=3

# 慢查询日志
slow_query_log=ON
slow_query_log_file=/var/log/mysql/mysql_slow_query.log
long_query_time=1

# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
default_storage_engine=InnoDB

# InnoDB调优
innodb_buffer_pool_size=6G
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=128M
innodb_log_file_size=1G
innodb_log_files_in_group=3

# 内存连接参数
key_buffer_size=16M
sort_buffer_size=2M
join_buffer_size=2M
thread_cache_size=200
read_buffer_size=2M
read_rnd_buffer_size=2M
bulk_insert_buffer_size=128M

# 连接设置
max_connections=4096
max_connect_errors=20
back_log=128
max_allowed_packet=1G
skip-name-resolve

#错误日志
log-error=/var/log/mysql/mysql-err.log

#时区
default-time-zone='+08:00'

[mysql]
default-character-set=utf8mb4
socket=/var/run/mysqld/mysqld.sock

[client]
default-character-set=utf8mb4
socket=/var/run/mysqld/mysqld.sock
CNF

echo "===== 目录授权 ====="
chmod 777 ${BASE_DIR}/tmp ${BASE_DIR}/logs

echo "===== 进入目录并启动容器 ====="
cd ${BASE_DIR}
docker-compose up -d

echo "====================================="
echo "部署完成！"
echo "部署目录：${BASE_DIR}"
echo "root密码：vmstestroot"
echo "查看日志：cd ${BASE_DIR} && docker-compose logs -f mysql"
echo "====================================="
EOF

