windows10 Docker运行mysql5.7
1. 拉取官方Docker镜像pull
pull拉取镜像命令
docker pull mysql:5.7
2. 检查下载的mysql:5.7镜像
docker images
docker images|findstr mysql
3. 配置docker-compose.yml文件
version: '3'
services:
mysql5.7:
image: mysql:5.7
# restart: always
environment:
MYSQL_ROOT_PASSWORD: root # 设置root用户密码
ports:
- 3306:3306
volumes: # 挂载持久化地址(个人理解)
- ./mysql/:/var/lib/mysql/
- ./conf/:/etc/mysql/
数据文件持久化和配置文件持久化时,在windows环境下,需要把磁盘共享给docker虚拟机
4. 启动 docker-compose
启动mysql
docker-compose up -d
检查数据是否持久化
- 常用命令
# 后台启动mysql :docker-compose up -d
# 进入mysql容器: docker-compose exec mysql5.7 bash
# 结束mysql容器:docker-compose down
# 停止mysql容器:docker-compose stop mysql5.7
# 重启mysql容器:docker-compose restart mysql5.7
5. 备份数据库
docker-compose exec mysql5.6 bash
mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /home/backup/all-databases.sql```
- 回复数据库
docker-compose exec mysql5.6 bash
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < /home/backup/all-databases.sql```
6.错误异常处理
6.1 mysql initializing databsase error -- initialize specified but the data directory has files in it. aborting
地址:https://github.com/docker-library/mysql/issues/290
6.2 ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'
已经存在用户root,请勿再次声明,去除下面
MYSQL_USER: root