Docker 部署 MySQL 8 详细图文教程

06-01 1092阅读

🚀 作者主页: 有来技术

🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template

🌺 仓库主页: GitCode︱ Gitee ︱ Github

💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正!

目录

  • 1. 环境准备
  • 2. 创建宿主机挂载目录
  • 3. 准备 MySQL 配置文件
  • 4. 拉取 MySQL 8 Docker 镜像
  • 5. 启动 MySQL 容器
  • 6. 查看容器运行状态
  • 7. 配置 MySQL 远程连接权限
  • 8. 备份和恢复

    1. 环境准备

    首先,确保你的系统已安装 Docker。如果尚未安装 Docker,请参考相关文档进行安装:

    • Linux (CentOS 9) 安装 Docker
    • Linux (CentOS 8) 安装 Docker

      2. 创建宿主机挂载目录

      为了方便管理 MySQL 的配置文件、数据和日志,需要在宿主机上创建相应的挂载目录:

      mkdir -p /mnt/mysql/{conf,data,logs}
      
      路径用途
      /mnt/mysql/conf存放自定义的 MySQL 配置文件 my.cnf
      /mnt/mysql/data用于持久化存储 MySQL 数据文件
      /mnt/mysql/logs存储 MySQL 的日志文件

      设置挂载目录权限:

      为确保容器能够正常访问和写入这些目录,需要调整宿主机目录的权限:

      sudo chown -R 999:999 /mnt/mysql/data
      sudo chown -R 999:999 /mnt/mysql/logs
      
      • 999:999 是 MySQL 容器内的 mysql 用户和组的 UID 和 GID。通过将权限设置为 999:999,确保容器能够正确地读写数据和日志文件。

        3. 准备 MySQL 配置文件

        在 /mnt/mysql/conf 目录下创建 MySQL 的配置文件。可以从官方 MySQL 镜像中获取默认配置文件并进行定制化设置。以下是一个基础的 my.cnf 配置文件示例:

        首先,进入 /mnt/mysql/conf 目录并创建配置文件:

        vi /mnt/mysql/conf/my.cnf
        

        然后,添加以下内容到 my.cnf 配置文件中:

        [mysqld]
        # MySQL 数据存储路径
        datadir=/var/lib/mysql
        # MySQL 错误日志路径
        log-error=/var/log/mysql/error.log
        # 启用远程连接
        bind-address=0.0.0.0
        # 设置字符集为 utf8mb4
        character-set-server=utf8mb4
        # 默认排序规则为 utf8mb4_0900_ai_ci,若需兼容 MySQL 5.7 可使用 utf8mb4_unicode_ci
        collation-server=utf8mb4_0900_ai_ci
        

        4. 拉取 MySQL 8 Docker 镜像

        在宿主机上执行以下命令来拉取最新版本的 MySQL 8 Docker 镜像:

        docker pull mysql:8
        

        Docker 部署 MySQL 8 详细图文教程

        5. 启动 MySQL 容器

        通过 Docker 启动 MySQL 8 容器,并将宿主机的 /mnt/mysql 目录挂载到容器的相应路径。执行以下命令:

        docker run -d \
          --name mysql8 \
          -e MYSQL_ROOT_PASSWORD=Youlai@2025 \
          -p 3306:3306 \
          -v /mnt/mysql/conf/my.cnf:/etc/mysql/my.cnf \
          -v /mnt/mysql/data:/var/lib/mysql \
          -v /mnt/mysql/logs:/var/log/mysql \
          mysql:8
        
        参数说明
        -d后台运行容器
        --name mysql8给容器命名为 mysql8
        -e MYSQL_ROOT_PASSWORD=rootpassword设置 root 用户密码为 yourpassword
        -p 3306:3306映射宿主机的 3306 端口到容器的 3306 端口
        -v /mnt/mysql/conf/my.cnf:/etc/mysql/my.cnf挂载宿主机的 MySQL 配置文件到容器内
        -v /mnt/mysql/data:/var/lib/mysql挂载宿主机的 MySQL 数据目录到容器内
        -v /mnt/mysql/logs:/var/log/mysql挂载宿主机的 MySQL 日志目录到容器内

        Docker 部署 MySQL 8 详细图文教程

        6. 查看容器运行状态

        使用以下命令检查 MySQL 容器是否成功启动:

        docker ps
        

        Docker 部署 MySQL 8 详细图文教程

        7. 配置 MySQL 远程连接权限

        默认情况下,MySQL 只允许本地连接。如果你希望允许远程连接,可以通过修改 MySQL 的用户权限来实现。首先,进入 MySQL 容器并登录数据库:

        docker exec -it mysql8 mysql -u root -p
        # 输入容器创建时设置的 root 用户密码
        # Enter password: yourpassword
        

        接着,执行以下 SQL 语句,允许 root 用户从任何 IP 地址连接:

        -- 允许 root 用户从任何 IP 地址连接
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
        -- 刷新权限
        FLUSH PRIVILEGES;
        

        Docker 部署 MySQL 8 详细图文教程

        设置成功后,使用可视化客户端连接 MySQL 服务,并测试连接是否成功。请确保防火墙已开放 MySQL 的端口(默认端口 3306),以允许外部连接。

        Docker 部署 MySQL 8 详细图文教程

        8. 备份和恢复

        由于数据已经挂载到宿主机的 /mnt/mysql/data 目录中,你可以轻松地备份 MySQL 数据。以下是一个简单的备份命令示例:

        docker exec mysql8 mysqldump -u root -pyourpassword --all-databases > /mnt/mysql/data/all_databases_backup.sql
        

        恢复数据时,使用以下命令:

        docker exec -i mysql8 mysql -u root -pyourpassword  
        

        Docker 部署 MySQL 8 详细图文教程

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码