Docker 中 MySQL 的部署与管理技巧例子解析

在这里插入图片描述

代码示例:

部署和管理Docker中的MySQL可以通过以下步骤进行:

  1. 拉取MySQL镜像
    您可以从Docker Hub上查找所需的MySQL镜像。例如,使用docker search mysql命令来搜索可用的MySQL镜像,并使用docker pull mysql:8.3.0来拉取特定版本的MySQL镜像。

  2. 创建宿主机目录
    在宿主机上创建目录用于挂载容器内的目录,例如:

    mkdir -p /home/mysql/{conf,data,log}
    

    这样可以持久化MySQL的数据、日志和配置文件。

  3. 创建配置文件
    在宿主机上创建MySQL的配置文件my.cnf,并进行相应的配置,例如设置字符集、时区等:

    [client]
    default-character-set=utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    
    [mysqld]
    server-id = 1
    log-bin=mysql-bin
    binlog_expire_logs_seconds = 2592000
    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
    max_connections=1000
    symbolic-links=0
    default-time_zone = '+8:00'
    

    然后保存退出。

  4. 启动MySQL容器
    使用docker run命令启动MySQL容器,并进行端口映射、挂载卷、设置环境变量等操作:

    docker run \
    -p 3306:3306 \
    --restart=always \
    --name mysql \
    --privileged=true \
    -v /home/mysql/log:/var/log/mysql \
    -v /home/mysql/data:/var/lib/mysql \
    -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
    -e MYSQL_ROOT_PASSWORD=a12bCd3_W45pUq6 \
    -d mysql:8.3.0
    

    其中-e MYSQL_ROOT_PASSWORD用于设置MySQL的root用户密码。

  5. 测试连接
    使用MySQL客户端工具如Navicat进行连接测试。如果服务器配置了SSH密钥连接方式,可以通过SSH隧道连接到MySQL数据库。

  6. 数据备份与恢复
    可以使用docker exec命令结合mysqldump工具进行数据备份:

    docker exec mysql-container /usr/bin/mysqldump -u root --password=my-secret-pw databasename > backup.sql
    

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

    cat backup.sql | docker exec -i mysql-container /usr/bin/mysql -u root --password=my-secret-pw databasename
    

    替换my-secret-pwdatabasename为您的实际密码和数据库名称。

  7. 使用Docker Compose
    创建docker-compose.yml文件来定义服务,例如:

    version: '3.9'
    services:
    database:
    container_name: "database"
    image: mysql:8.0
    environment:
    - MYSQL_ROOT_PASSWORD=dummy_pass
    volumes:
    - db-data:/var/lib/mysql
    ports:
    - "3306:3306"
    volumes:
    db-data:
    

    然后使用docker-compose up -d命令启动服务。

  8. 持久化数据
    通过Docker卷来持久化MySQL数据,例如在docker-compose.yml文件中定义的db-data:/var/lib/mysql就是一个Docker卷。

  9. 网络配置
    如果需要从其他容器或宿主机访问MySQL服务器,可以在Docker Compose文件中的networks键下配置Docker网络。

  10. 错误处理和调试
    使用docker logs mysql-container查看MySQL日志进行故障排除。如果需要查看容器内部状态,可以使用docker exec命令。

通过上述步骤,您可以在Docker中部署和管理MySQL服务器。

喜欢本文,请点赞、收藏和关注!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值