Docker安装MySQL

实现持久化存储

在 Docker 中运行 MySQL 并实现数据持久化,需要挂载以下几个目录:

  1. 配置文件目录:

    • 挂载路径: /etc/mysql/conf.d
    • 用途: 存放 MySQL 的配置文件,如 my.cnf。这些配置文件会在 MySQL 启动时读取,用于设置数据库的各种参数。
  2. 数据目录:

    • 挂载路径: /var/lib/mysql
    • 用途: 存放 MySQL 的数据文件,包括数据库表、索引、日志等。这个目录保存了 MySQL 中实际的数据内容。
  3. 日志目录:

    • 挂载路径: /var/log/mysql
    • 用途: 存放 MySQL 的日志文件,包括错误日志、慢查询日志等。这些日志可用于问题排查和性能调优。
  4. 创建对应目录

sudo mkdir -p /etc/mysql/conf.d /var/lib/mysql /var/log/mysql

通过挂载这些目录,您可以确保 MySQL 的配置文件、数据文件和日志文件都保存在宿主机的指定目录中,即使 Docker 容器被删除或重新创建,这些数据也不会丢失。

以下是一个示例 docker run 命令,展示了如何挂载这些目录:

sudo docker run -d --privileged=true \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=password \
  -v /home/ubuntu/mysql/conf.d:/etc/mysql/conf.d \
  -v /home/ubuntu/mysql/data:/var/lib/mysql \
  -v /home/ubuntu/mysql/logs:/var/log/mysql \
  -p 3306:3306 \
  mysql:8.0.37

在这个示例中:

  • /home/ubuntu/mysql/config 目录将被挂载到容器的 /etc/mysql 目录,用于存放配置文件。

  • /home/ubuntu/mysql/data 目录将被挂载到容器的 /var/lib/mysql 目录,用于存放数据文件。

  • /home/ubuntu/mysql/logs 目录将被挂载到容器的 /var/log/mysql 目录,用于存放日志文件。

通过这样的挂载方式,即使 Docker 容器被删除或重新创建,您在宿主机上的这些目录中保存的 MySQL 配置和数据也不会丢失。

PS:

  • 如果运行失败,可以执行sudo docker logs [mysql]查看相关日志。[mysql]为容器名称

Docker中进入mysql

sudo docker exec -it [mysql-name] mysql -uroot -p

本机进入mysql

  • 如果有需要可以安装mysql客户端mysql -uroot -p连接
sudo apt install mysql-client-core-8.0     # version 8.0.35-0ubuntu0.22.04.1, or
sudo apt install mariadb-client-core-10.6  # version 1:10.6.12-0ubuntu0.22.04.1
posted @ 2024-05-30 13:13  Laravel自学开发  阅读(3)  评论(0编辑  收藏  举报