docker构建mysql以及多实例

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: docker构建mysql以及多实例

docker创建mysql

这里如果是mac本的话,要特别注意在拉取镜像的时候需要如下操作

首先拉取mysql镜像

docker pull mysql/mysql-server:5.7.31

创建容器

docker run -p 3351:3306 --name myMysql-3351 -v /Users/xiaobo/DockerImage/mysql/3351/conf/my.cnf:/etc/my.cnf -v /Users/xiaobo/DockerImage/mysql/3351/logs/3351.log:/var/log/mysqld.log -v /Users/xiaobo/DockerImage/mysql/3351/data:/var/lib/data -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.7.31

注意⚠️

  • -e MYSQL_ROOT_PASSWORD=123456 是设置密码
  • 如果是mac本是默认拉取镜像,或者创建容器的时候可以+--platform linux/x86_64
  • 如果docker启动不成功的话需要将挂载的my.cnf文件修改权限755chmod 755 my.cnf

修改权限使得navicat可以登录

进入容器

docker exec -it 容器的名字 /bin/bash

输入以下命令

- use mysql
- update user set Host='%' where User='root'; 
- 最后 flush privileges;

docker创建多实例

按照上面的步骤依次创建3351,3352,3353

相应的my.cnf内容如下图

⚠️:上面所写的-p3351:3306实际上是宿主机对容器的映射

这里在做从库同步的时候,要使用容器的ip,命令如下

docker inspect myMysql-3351

先查看主节点的状态

# 查看主节点状态
SHOW MASTER STATUS;
# 刷新日志
flush logs;
# 展示所有的主库binlog
show master logs;

在从库同步的时候输入以下命令

# 首先要切换到从库下,然后执行上面的,SHOW MASTER STATUS;可看到如上图
CHANGE MASTER TO
       MASTER_HOST='172.17.0.3',
        MASTER_USER='root',
        MASTER_PASSWORD='123456',
    MASTER_PORT = 3306,
       MASTER_LOG_FILE='mysql-bin.000003',
        MASTER_LOG_POS=154;
START SLAVE;
show slave status;

上面命令执行好后会出现如下图,表示成功(这里并非绝对,对于多主多从的情况下还需要看偏移量)

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
56 2
|
7天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
15 1
|
14天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
本文介绍了Docker和Kubernetes在构建高效微服务架构中的应用,涵盖基本概念、在微服务架构中的作用及其实现方法。通过具体实例,如用户服务、商品服务和订单服务,展示了如何利用Docker和Kubernetes实现服务的打包、部署、扩展及管理,确保微服务架构的稳定性和可靠性。
57 7
|
13天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【10月更文挑战第22天】随着云计算和容器技术的快速发展,微服务架构逐渐成为现代企业级应用的首选架构。微服务架构将一个大型应用程序拆分为多个小型、独立的服务,每个服务负责完成一个特定的功能。这种架构具有灵活性、可扩展性和易于维护的特点。在构建微服务架构时,Docker和Kubernetes是两个不可或缺的工具,它们可以完美搭档,为微服务架构提供高效的支持。本文将从三个方面探讨Docker和Kubernetes在构建高效微服务架构中的应用:一是Docker和Kubernetes的基本概念;二是它们在微服务架构中的作用;三是通过实例讲解如何使用Docker和Kubernetes构建微服务架构。
49 6
|
12天前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
18 4
|
13天前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
28 3
|
18天前
|
jenkins 测试技术 持续交付
Docker最佳实践:构建高效的CI/CD流水线
【10月更文挑战第17天】在现代软件开发实践中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已成为提高开发效率和软件质量的重要手段。Docker作为一种容器技术,为构建一致且隔离的开发环境提供了强有力的支撑。本文将探讨如何利用Docker来优化CI/CD流程,包括构建环境的标准化、镜像管理以及与CI/CD工具(如Jenkins、GitLab CI)的集成。
36 5
|
17天前
|
JavaScript Docker Python
下个时代的开发工具-Nix:声明式的运行环境构建器、简单场景下的docker替身
Nix 是一个独特的包管理工具和构建系统,采用声明式方法管理软件包和运行环境。它通过精确控制依赖关系和环境配置,确保软件的可重复性、隔离性和可追溯性。Nix 支持多语言开发环境,提供声明式配置、环境隔离、回滚与版本控制等核心功能,适用于复杂开发场景,有效解决依赖冲突和环境不一致问题。
|
20天前
|
运维 Kubernetes 监控
掌握Docker容器化技术:构建、部署与管理的高效实践
【10月更文挑战第14天】掌握Docker容器化技术:构建、部署与管理的高效实践
34 0
|
24天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
57 3
Mysql(4)—数据库索引