创建主工作目录
sudo mkdir-p/home/tools/{scripts,mysql,mysql8,redis,opengauss,minio}创建各服务子目录
sudo mkdir-p/home/tools/mysql/{data,conf,logs}执行脚本
#!/bin/bashset-e# 遇到错误立即退出echo"开始部署 MySQL 5.7..."# 定义变量MYSQL_DIR="/home/tools/mysql"MYSQL_PORT="3306"MYSQL_ROOT_PASSWORD="123456"CONTAINER_NAME="mysql5.7"# 创建配置文件cat> ${MYSQL_DIR}/conf/my.cnf <<'EOF'[client]default-character-set= utf8mb4[mysql]default-character-set= utf8mb4[mysqld]# 基础设置user = mysql character-set-server= utf8mb4 collation-server = utf8mb4_unicode_ciskip-name-resolve# 时区设置default_time_zone ='+8:00'# 连接和限制max_connections = 1000 max_connect_errors = 10000 sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION# 表名大小写lower_case_table_names = 1# InnoDB 性能优化(根据服务器内存调整,建议为物理内存的50-70%)innodb_buffer_pool_size = 512M innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 120# 二进制日志(用于备份和复制)server-id = 1 log_bin =/var/log/mysql/mysql-bin expire_logs_days = 7 max_binlog_size = 100M# 慢查询日志slow_query_log = 1 slow_query_log_file =/var/log/mysql/mysql-slow.log long_query_time = 2# 错误日志log_error =/var/log/mysql/mysql-error.log EOF# 设置目录权限sudo chown-R 1000:1000 ${MYSQL_DIR}/datasudo chmod-R 755 ${MYSQL_DIR}# 拉取镜像docker pull mysql:5.7# 启动容器docker run-d \--name ${CONTAINER_NAME}\-p ${MYSQL_PORT}:3306 \-v ${MYSQL_DIR}/data:/var/lib/mysql \-v ${MYSQL_DIR}/conf:/etc/mysql/conf.d \-v ${MYSQL_DIR}/logs:/var/log/mysql \-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}\-e TZ=Asia/Shanghai \--restart=unless-stopped \--memory=2g \--cpus=1.0 \--log-opt max-size=10m \--log-opt max-file=3 \ mysql:5.7# 等待容器启动echo"等待MySQL启动..."sleep30# 检查容器状态ifdockerps|grep-q ${CONTAINER_NAME};thenecho" MySQL 5.7 部署成功!"echo" 连接信息:"echo" 地址: localhost:${MYSQL_PORT}"echo" 用户名: root"echo" 密码: ${MYSQL_ROOT_PASSWORD}"elseecho" MySQL 5.7 部署失败,查看日志:docker logs ${CONTAINER_NAME}"exit1 fi