Metersphere安装时MySQL容器报错无法启动解决方案

1、3306监听端口冲突
- 修改docker映射端口为其他端口
- metersphere安装环境配置文件内的mysql端口配置(/opt/metersphere/.env)
- metersphere未安装则修改安装配置内的mysql端口配置(install.conf)

docker rm -f mysql
msctl reload

2、操作权限不足
- 修改目录权限

chmod 777 -R /opt/metersphere
docker rm -f mysql
msctl reload
  • 修改docker启动命令,赋予权限(/opt/metersphere/docker-compose-mysql.yml)
    service-mysql节点下:
    privileged: true
    编辑并保存后,执行
docker rm -f mysql
msctl reload

配置文件参考:

version: "2.1"
services:
  mysql:
    image: {MS_IMAGE_PREFIX}/mysql:8.0.35
    container_name: mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p{MS_MYSQL_PASSWORD}"]
      interval: 6s
      timeout: 5s
      retries: 50
    environment:
      MYSQL_DATABASE: {MS_MYSQL_DB}
      MYSQL_ROOT_PASSWORD:{MS_MYSQL_PASSWORD}
    ports:
      - {MS_MYSQL_PORT}:3306
    privileged: true
    volumes:
      -{MS_BASE}/metersphere/conf/my.cnf:/etc/mysql/conf.d/my.cnf
      - {MS_BASE}/metersphere/bin/mysql:/docker-entrypoint-initdb.d/
      - ms-mysql-data:/var/lib/mysql
    networks:
      - ms-network
    restart: always
  system-setting:
    depends_on:
      mysql:
        condition: service_healthy

volumes:
  ms-mysql-data:
    driver_opts:
      type: none
      device:{MS_BASE}/metersphere/data/mysql
      o: bind