What is MySQL Cluster? Mysql集群的概念?

MySQL Cluster is built on the NDB storage engine and provides a highly scalable, real-time, ACID-compliant transactional database, combining 99.999% availability with the low TCO of open source. Designed around a distributed, multi-master architecture with no single point of failure, MySQL Cluster scales horizontally on commodity hardware to serve read and write intensive workloads, accessed via SQL and NoSQL interfaces.

MySQL Cluster构建于NDB存储引擎之上,提供高度可伸缩、实时、符合ACID的事务数据库,结合了99.999%的可用性和开放源码的低TCO。MySQL Cluster是围绕分布式、多主、服务架构设计的,所以没有单点故障,它在商品硬件上横向扩展,以提供通过SQL和NoSQL接口访问的读写密集型工作负载。

For more information about MySQL Cluster, please visit https://www.mysql.com/products/cluster/

更多MySQL集群资料,请访问:https://www.mysql.com/products/cluster/

MySQL Cluster Docker Images Mysql集群Docker镜像

These are optimized MySQL Cluster Docker images, created and maintained by the MySQL team at Oracle. The available versions are:

这些是优化的MySQL集群DOCKER镜像,由Oracle公司的MySQL团队创建和维护。可用的版本是:

MySQL Cluster 7.5 (tag: 7.5)
MySQL Cluster 7.6, the latest GA version (tag: 7.6 or latest)

Images are updated when new MySQL Cluster maintenance releases and development milestones are published. Please note that all MySQL Cluster Docker images are to be considered experiemental and should not be used in production.

当新的MySQL集群版本发布时,镜像被更新。请注意,所有MySQL集群镜像是用于测试或实验性,不推荐在生产中使用。

How to Use the MySQL Cluster Images

Start a MySQL Cluster Using Default Configuration

Note that the ordering of container startup is very strict, and will likely need to be started from scratch if any step fails
First we create an internal Docker network that the containers will use to communicate

注意,容器启动的顺序非常严格,如果任何步骤失败,都可能需要从头开始。
首先,我们创建一个内部的DOCKER网络,容器将用来进行通信。

docker network create cluster --subnet=192.168.0.0/16

Then we start the management node

然后确定管理节点

docker run -d --net=cluster --name=management1 --ip=192.168.0.2 mysql/mysql-cluster ndb_mgmd

The two data nodes

然后启动数据节点

docker run -d --net=cluster --name=ndb1 --ip=192.168.0.3 mysql/mysql-cluster ndbd
docker run -d --net=cluster --name=ndb2 --ip=192.168.0.4 mysql/mysql-cluster ndbd

And finally the MySQL server node

最后启动Server节点

docker run -d --net=cluster --name=mysql1 --ip=192.168.0.10 -e MYSQL_RANDOM_ROOT_PASSWORD=true mysql/mysql-cluster mysqld

The server will be initialized with a randomized password that will need to be changed, so fetch it from the log, then log in and change the password.

服务器将用一个需要更改的随机密码初始化,因此从日志中取出它,然后登录并更改密码。

If you get an error saying «ERROR 2002 (HY000): Can't connect to local MySQL server through socket» then the server has not finished initializing yet.

如果您得到一个错误提示_ERROR 2002(HY000):无法通过套接字连接到本地MySQL服务器_那么服务器还没有完成初始化。

#打印自动生成的密码,可能刚开始有一段时间,没打印出来,等会再输入docker logs mysql1 2>&1 查找
docker logs mysql1 2>&1 | grep PASSWORD
#复制自动生成的密码,登录管理员账号
docker exec -it mysql1 mysql -uroot -p
#修改root的密码,此处的‘MyNewPass’请改为自己的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
#刷新权限
flush privileges; 

Finally start a container with an interactive management client to verify that the cluster is up

最后启动一个带有交互式管理客户端的容器,以验证集群是否已启动。

docker run -it --net=cluster mysql/mysql-cluster ndb_mgm

Run the SHOW command to print cluster status. You should see the following

运行如下命令以打印群集状态,您应该看到以下内容:

Starting ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 192.168.0.2:1186
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2    @192.168.0.3  (mysql-5.7.18 ndb-7.6.2, Nodegroup: 0, *)
id=3    @192.168.0.4  (mysql-5.7.18 ndb-7.6.2, Nodegroup: 0)[ndb_mgmd(MGM)]    1 node(s)
id=1    @192.168.0.2  (mysql-5.7.18 ndb-7.6.2)[mysqld(API)]    1 node(s)
id=4    @192.168.0.10  (mysql-5.7.18 ndb-7.6.2)

Customizing MySQL Cluster

The default MySQL Cluster image includes two config files which are also available in the github repository at https://github.com/mysql/mysql-docker/tree/mysql-cluster

定制MySQL集群

默认的MySQL集群图像包含两个配置文件,这些文件也可在如下地址中的GITHUB存储库中使用

https://github.com/mysql/mysql-docker/tree/mysql-cluster

  • /etc/my.cnf
  • /etc/mysql-cluster.cnf
  • To change the cluster, for instance by adding more nodes or change the network setup, these files must be updated. For more information on how to do so, please refer to the MySQL Cluster documentation at to https://dev.mysql.com/doc/index-cluster.html
    To map up custom config files when starting the container, add the -v flag to load an external file. Example:
    docker run -d --net=cluster --name=management1 --ip=192.168.0.2 -v <path-to-your-file>/mysql-cluster.cnf:/etc/mysql-cluster.cnf mysql/mysql-cluster ndb_mgmd

Docker上部署MySQLCluster(基于mysql/mysql-cluster镜像)相关推荐

  1. Docker上部署SpringBoot项目并推送镜像到Docker Hub上---以MacOS为例

    Docker部署.镜像推送至Docker Hub.拉取.运行 Docker部署 Dockerfile文件内容 文件内容解释 制作镜像 查看镜像 本地运行镜像 镜像推送.拉取.运行 镜像推送 镜像拉取 ...

  2. 在Docker上部署NGINX和NGINX Plus

    在Docker上部署NGINX和NGINX Plus 高性能应用程序交付平台NGINX Plus,负载均衡器和Web服务器可通过Docker容器部署. 先决条件 在Docker容器中运行NGINX开源 ...

  3. Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)

    # 使用docker-compose.yml 安装gitlab服务器 $ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/ ...

  4. 在Centos8上部署Django环境(Nginx+mysql+uwsgi)

    前言:笔者通过阿里云的学生"在家实践计划"获得了一台2核4G的云ECS实例,并安装了Centos8镜像.于是尝试部署一套Django的生产环境.笔者选择了 Nginx + uwsg ...

  5. 如何高效快速地在Linux系统上部署Node.js+Express+MySQL的开发环境(桌面可视化)...

    一.前言 可能一些初级前端和我一样,在有些项目需要前后台都一个人打通搞定的时候,对于后台和开发环境的部署还是比较头疼的.特别是Linux系统,由于没有系统接触过,也不太喜欢去记背那么多命令,大部分命令 ...

  6. ruby sinatra mysql_关于在 OpenShift 上部署的 Sinatra 使用 MySQL 的问题

    本人是 Ruby 新手,想通过在 openshift 上部署 sinatra 来慢慢学习,感觉 ror 实在是繁杂故先选择了感觉轻量级的 sinatra,数据库也是了解了大概,希望大大能帮助我> ...

  7. 解决微服务在docker上部署后无法连接数据库的问题

    在利用docker部署完应用程序后,就接着考虑如何将程序连接到数据库. 但是过程中发现一些问题: 本地程序在打包后连接的是本地的数据库,在服务器上部署之后必须提供相同的环境才能部署成功. 这里博主用的 ...

  8. docker helowin 迁移_禅道在docker上部署与迁移

    一.禅道部署 1.下载地址 数据库用户名:root,默认密码:123456.运行时,可以设置MYSQL_ROOT_PASSWORD变量来更改密码. 可挂载目录 /app/zentaopms:该目录为禅 ...

  9. 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像

    在上一个part<把AspDotNetCoreMvc程序运行在Docker上-part1>,已经将成功将aspdotnetcore程序运行在两个不同的容器中,目前两个容器的内容完全相同,只 ...

最新文章

  1. vue 搭建脚手架 的教程
  2. mongodb插入数据获取本次插入的mongodb id
  3. 看看XStream注解
  4. 浅谈java内存分配和回收策略
  5. python的优点和缺点-Python语言的优缺点,你知道吗?
  6. 想学习linux服务器、做运维、部署项目的同学看这,linux部署
  7. 关闭笔记本显示器指定组合键才能打开_笔记本外接显示器怎么设置 笔记本外接显示器设置方法【详解】...
  8. 金相图像处理 matlab,基于MATLAB软件的图像处理技术 毕业论文.doc
  9. 查询显示注释_SQL汇总--简单查询
  10. 【ubuntu】服务器新增user,并且配置ssh
  11. mac 下安装jenkins
  12. Intel 64/x86_64/x86/IA-32处理器串行化指令(2) - 参考
  13. 字符串标志“ u”和“ r”到底是做什么的,什么是原始字符串文字?
  14. HTML5变化 (一)
  15. Drool的LHS和RHS
  16. java的程序员工资一般多少_JAVA程序员工资一般是多少
  17. 【大数据技术】实验3:熟悉常用的Hive操作
  18. vue、Element-UI 图标偶发性乱码问题解决方案
  19. Spark性能优化之-资源调优
  20. Number of unique ways that ATM can tender

热门文章

  1. Magento教程 24:如何发送电子报! (Newsletter)
  2. 网络广告中的CPS,CPA,CPL,CPC,CPM,CPR的含义是什么?
  3. 新版《谷歌搜索引擎优化初学者指南》
  4. magento 获取产品的属性值
  5. 慎用PHP $_REQUEST数组
  6. 优化 WordPress 后台设置教程
  7. 解析Linux内核模块的链接顺序
  8. LeetCode 535. Encode and Decode TinyURL
  9. 【AI视野·今日CV 计算机视觉论文速览 第217期】Thu, 10 Jun 2021
  10. python3解释器安装过程 2022