我在最新的官方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本身内时,一切都正常运行。
我有同样的问题。如果您使用的是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: