使用docker-compose创建持久的MySQL8
使用 Docker Compose 可以更加方便地管理和部署多容器应用。
创建项目目录
创建一个目录用于存放
docker-compose.yml
文件和数据挂载目录。mkdir -p my-mysql-docker cd my-mysql-docker mkdir -p mysql_data
创建
docker-compose.yml
文件在
my-mysql-docker
目录下创建一个docker-compose.yml
文件,内容如下:version: "3.8" services: mysql: image: mysql:8.0 container_name: mysql-container environment: MYSQL_ROOT_PASSWORD: xiwanli MYSQL_ROOT_HOST: "%" volumes: - ./mysql_data:/var/lib/mysql ports: - "3306:3306" networks: - mysql-network networks: mysql-network: driver: bridge
运行 Docker Compose
在
my-mysql-docker
目录下运行以下命令以启动 MySQL 服务:docker-compose up -d
这将会:
- 下载 MySQL 8.0 镜像(如果还没有下载)。
- 创建并启动一个名为
mysql-container
的 MySQL 容器。 - 将容器内的 MySQL 数据目录挂载到主机的
./mysql_data
目录。 - 暴露 3306 端口以允许远程连接。
- 使用
pass
作为 root 用户的密码。
配置 MySQL 容器以允许远程连接
进入 MySQL 容器:
docker-compose exec mysql mysql -uroot -p
然后执行以下 SQL 命令以确保 root 用户可以从任何主机连接:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'pass'; FLUSH PRIVILEGES;
验证远程连接
使用 MySQL 客户端工具(如 MySQL Workbench)或命令行工具从远程机器连接到你的 MySQL 数据库:
mysql -h <your_server_ip> -P 3306 -u root -p