我在最新的官方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本身内部时,一切都会正常运行。
发布于 2019-04-16 19:30:21
我也有同样的问题。如果您使用的是Linux容器,那么这个问题很可能与MySQL容器和Windows主机具有的不同文件系统类型有关。使用命名卷,即some-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:https://stackoverflow.com/questions/55707015
复制相似问题