首页 > 解决方案 > docker for windows & mysql 官方容器

问题描述

我在最新的官方 MySQL docker 容器中运行 MySQL。主机是 Windows 10。

我正在使用“docker-compose up mysql”来启动以下服务:

version: '3.4'

services:
  mysql:
    image: mysql/mysql-server:latest
    container_name: sqlstore
    ports:
     - '3306:3306'
    expose:
     - '3306'
    env_file:
     - ./sqlconfig.env  
    volumes:
     - ./data:/var/lib/mysql

我遇到的问题是当 MySQL 数据库文件驻留在主机的卷上时,MySQL 无法运行,并且我不断收到以下错误消息:“你是否已经在套接字上运行了另一个 mysqld 服务器:”/var/lib/ mysql/mysql.sock""

值得注意的是,我确实确保该端口没有被其他进程使用,并且 MySQL 的文件确实正在写入主机上的 ./data 目录。

但是,当 MySQL 文件不驻留在主机上而是驻留在 docker 本身内时,一切都会正常运行。

标签: mysqldockerdocker-composedockerfile

解决方案


我有同样的问题。如果您使用的是 Linux 容器,那么问题很可能与 MySQL 容器和 Windows 主机所具有的不同文件系统类型有关。使用命名卷 iesome-data:/var/lib/mysql可能会解决问题。工作示例:

version: '3.4'

services:
  mysql:
    image: mysql/mysql-server:latest
    container_name: sqlstore
    ports:
     - '3306:3306'
    expose:
     - '3306'
    env_file:
     - ./sqlconfig.env
    volumes:
     - datavol:/var/lib/mysql
volumes:
  datavol:

推荐阅读