您的位置:

Docker MySQL 8详解

一、Docker MySQL 8简介

Docker是一种容器化技术,MySQL是一种流行数据库。结合使用Docker和MySQL可以让我们更方便地构建和部署数据库环境。在Docker中,我们可以部署多个MySQL数据库实例,提供完整的测试环境,而不必担心不同版本或配置文件的冲突问题。在本文中,我们将详细讲解如何使用Docker来部署MySQL8。

二、Docker MySQL 8安装

在开始之前,确保您已经安装了Docker和Docker Compose。

1. 下载MySQL8镜像:


docker pull mysql:8

2. 创建一个docker-compose.yml文件:


version: '3'
services:

  db:
    image: mysql:8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - 3306:3306

3. 启动MySQL8:


docker-compose up

4. 连接MySQL8:


mysql -uroot -pexample -h127.0.0.1 -P3306

三、Docker MySQL 8配置

MySQL8的默认配置允许外部访问。为了更好的安全性,我们可以通过修改my.cnf文件来限制只允许本地访问。

1. 创建custom.cnf文件:


[mysqld]
bind-address = 127.0.0.1

2. 修改docker-compose.yml文件:


version: '3'
services:

  db:
    image: mysql:8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - 127.0.0.1:3306:3306
    volumes:
      - ./custom.cnf:/etc/mysql/conf.d/custom.cnf

3. 重新启动MySQL:


docker-compose up

四、Docker MySQL 8备份和恢复

在Docker容器中运行的MySQL数据库需要备份和恢复。我们可以使用mysqldump来备份和恢复MySQL数据库。

1. 备份MySQL:


mysqldump -uroot -pexample mydatabase > mydatabase.sql

2. 恢复MySQL:


mysql -uroot -pexample mydatabase < mydatabase.sql

五、Docker MySQL 8常用命令

1. 显示所有运行中的容器:


docker ps

2. 显示所有的容器:


docker ps -a

3. 启动某个容器:


docker start container_name

4. 停止某个容器:


docker stop container_name

5. 进入某个容器:


docker exec -it container_name bash

6. 移除某个容器:


docker rm container_name

7. 显示所有镜像:


docker images

8. 移除某个镜像:


docker rmi image_name

六、结论

在本文中,我们详细介绍了如何在Docker中部署MySQL8,并进行了一些基本配置、备份和恢复、常用命令等方面的讲解。希望这篇文章能帮助大家更加深入地了解Docker和MySQL的结合使用。