云服务器上Docker启动的MySQL会自动删除数据库的问题
这个问题可能是由于Docker容器的存储卷被重新挂载或清理策略导致的。当容器重启时,如果没有特别的数据持久化设置,容器内的文件系统可能会被重置,导致数据库被删除。
解决方法:
- 使用Docker卷或Docker数据卷容器来持久化数据库文件。
- 在Docker启动命令中使用
-v
参数将宿主机的目录或特定文件挂载到容器内部,确保数据库文件存放的目录被挂载。 - 如果使用的是Docker Compose,可以在
docker-compose.yml
文件中配置volumes来挂载数据库文件。
示例docker-compose.yml配置:
version: '3'
services:
mysql:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- /my/own/datadir:/var/lib/mysql
在这个配置中,/my/own/datadir
是宿主机上用于持久化MySQL数据库文件的目录,而 /var/lib/mysql
是容器内部MySQL默认存储数据的目录。这样配置后,即使容器重启,数据库文件也会保持不变。
评论已关闭