docker安装的1panel如何 管理、使用 mysql

1panel运行在Docker容器里面,已安装mariadb正常使用,但商店里面的 DataEase、Metabase 都只能使用 Mysql ,尝试在面板里多安装一个Mysql 8 。
安装完成后,数据库管理里面 和 应用商店里使用Mysql都提示报错:

服务内部错误: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

查看1panel所在的Docker容器,里面不存在 /var/run/mysqld/mysqld.sock 这个文件,尝试过将Mysql里面的 /var/run/mysqld/mysqld.sock 映射到 1Panel 容器里面,依旧报这个错

mysql 8 运行在 3308 端口,使用客户端可用正常连接

1panel Docker compose

version: '3'
services:
  1panel:
    container_name: 1panel # 容器名
    restart: always
    network_mode: "host"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /srv/dev-disk-by-label-file/docker/:/var/lib/docker/
      - /var/lib/containerd:/var/lib/containerd
      - ./opt:/opt  # 文件存储映射
      - /root:/root  # 可选的文件存储映射
      - /etc/docker:/etc/docker  # docker 配置文件夹映射
      - /:/all
      - ./run/mysqld:/var/run/mysqld/
    environment:
      - TZ=Asia/Shanghai  # 时区设置
    image: moelin/1panel:latest
    labels:
      createdBy: "Apps"


mysql 的 docker-compose.yml

networks:
    1panel-network:
        external: true
services:
    mysql:
        command:
            - --mysql-native-password=on
        container_name: ${CONTAINER_NAME}
        deploy:
            resources:
                limits:
                    cpus: ${CPUS}
                    memory: ${MEMORY_LIMIT}
        environment:
            MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD}
        image: mysql:8.4.4
        labels:
            createdBy: Apps
        networks:
            - 1panel-network
        ports:
            - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:3306
        restart: always
        volumes:
            - ./data/:/var/lib/mysql
            - ./conf/my.cnf:/etc/my.cnf
            - ./log:/var/log/mysql
            - /etc/timezone:/etc/timezone:ro
            - /etc/localtime:/etc/localtime:ro
            - /srv/dev-disk-by-label-file/appdata/1panel/run/mysqld:/var/run/mysqld

1panel 版本为 v1.10.29-lts

本地使用 客户端可以正常连接

好了,使用远程连接可以连上了