利用docker镜像配置mysql集群+nextcloud集群+haproxy负载均衡

摘要:
包括ndb_Mgm(管理节点)、ndb_Mgmd01、ndbd01(数据节点1)、ndbd02(数据节点2)、mysqld01(sql节点1)和mysqld02(sql节点2)dockerrun-itd--namendb_Mgmd01--net=scg-ip192.166.0.2-v/root/owncloud-cluster/MysqlCluster/config.ini:

测试环境:

docker

xampp 9.1.1

ubuntu 16.0.4

hadoop 2.7

jdk 1.8

一、配置mysql集群

通过docker拉取mysql集群镜像创建容器,包括ndb_mgm(管理节点)、ndb_mgmd01、ndbd01(数据节点1)、ndbd02(数据节点2)、mysqld01(sql节点1)、mysqld02(sql节点2)

docker run -itd --name ndb_mgmd01 --net=scg --ip 192.166.0.2 -v /root/owncloud-cluster/MysqlCluster/config.ini:/etc/mysql-cluster.ini:ro h3nrik/mysql-cluster ndb_mgmd

docker run -itd --name ndbd01 --net=scg --ip 192.166.0.10 h3nrik/mysql-cluster ndbd 192.166.0.2

docker run -itd --name ndbd02 --net=scg --ip 192.166.0.11 h3nrik/mysql-cluster ndbd 192.166.0.2

docker run -itd --name mysqld01  --net=scg --ip 192.166.0.100  h3nrik/mysql-cluster mysqld 192.166.0.2

docker run -itd --name mysqld02  --net=scg --ip 192.166.0.101  h3nrik/mysql-cluster mysqld 192.166.0.2

docker run -it --name ndb_mgm --net=scg h3nrik/mysql-cluster ndb_mgm 192.166.0.2

其中--net参数是指定容器间内部访问网络名称,--ip是指定各容器ip,-v后的内容是指在本地配置好config.ini文件,然后将其映射到ndb_mgmd容器内

config.ini配置内容如下

  [NDBD DEFAULT]
  NoOfReplicas=2
  DataMemory=80M
  IndexMemory=18M
  datadir=/usr/local/mysql/data

  [NDB_MGMD DEFAULT]
  datadir=/var/lib/mysql-cluster

  [NDB_MGMD]
  NodeId=1
  hostname=192.166.0.2

  [NDBD]
  NodeId=10
  hostname=192.166.0.10

  [NDBD]
  NodeId=11
  hostname=192.166.0.11

  [MYSQLD]
  NodeId=100
  hostname=192.166.0.100

  [MYSQLD]
  NodeId=101
  hostname=192.166.0.101

验证mysql集群配置是否成功:

docker run -it --name ndb_mgm --net=scg h3nrik/mysql-cluster ndb_mgm 192.166.0.2后进入ndb_mgm管理节点

利用docker镜像配置mysql集群+nextcloud集群+haproxy负载均衡第1张

 输入命令show查看数据节点和sql节点连接情况

利用docker镜像配置mysql集群+nextcloud集群+haproxy负载均衡第2张

mysql-cluster配置成功

二、配置haproxy负载均衡

haproxy是外部客户端访问mysql集群数据库的代理服务器。haproxy会根据服务器的负载情况将接受到的外部服务请求分发给应用服务器。

docker run -d --name my-running-haproxy –-ip=192.166.0.50 –port=8011:3306 –net=scg -v /usr/local/etc/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest

--ip指定haproxy容器ip,-net指定容器内部网络名,-p指定端口映射,-v将本地配置文件映射到容器内

配置文件内容如下

  global
  log 127.0.0.1 local0 notice
  # user haproxy
  # group haproxy

  defaults
  log global
  retries 2
  timeout connect 3000
  timeout server 5000
  timeout client 5000

  listen mysql-cluster
  bind *:3306
  mode tcp
  # option mysql-check user haproxy_check
  balance roundrobin
  server mysql01 192.166.0.100:3306 check
  server mysql02 192.166.0.101:3306 check

  listen stats #monitor
  mode http
  bind *:8888
  stats uri /

启动haproxy负载均衡容器

docker start haproxy容器名

三、配置nextcloud

1、  官网下载nextcloud并解压

2、 将nextcloud文件夹复制到/opt/lamp/htdocs,该路径为xampp的主机文件

3、  启动xampp

sudo /opt/lamp/lamp start

4、  在/opt/lamp/htdocs下新建data文件夹

5、  给data文件授权

Sudo chmod -R 777 /opt/lamp/htdocs

Sudo chmod -R 770 /opt/lamp/htdocs/data

Sudo chown -R daemon:daemon /opt/lamp/htdocs/data

6、进入mysqld01并创建数据库

创建新用户

mysql>CREATE USER ‘test'@'l%' IDENTIFIED BY '123456';

创建新数据库

mysql>CREATE DATABASE IF NOT EXISTS nextcloud;  

 为nextcloud数据库授权

mysql>GRANT ALL PRIVILEGES ON nextcloud.* TO 'test'@'%' IDENTIFIED BY '123456';

mysql>flush priveleges;

 授权远程访问数据库

mysql> grant all privileges on *.* to 'test'@'%' identified by '123456' with grant option;

mysql>flush priveleges;

7、  进入mysqld02并授权

mysql>CREATE USER ‘test'@'l%' IDENTIFIED BY '123456';

mysql>GRANT ALL PRIVILEGES ON nextcloud.* TO 'test'@'%' IDENTIFIED BY '123456';

mysql>flush priveleges;

mysql> grant all privileges on *.* to 'test'@'%' identified by '123456' with grant option;

mysql>flush priveleges;

 这里跟mysqld01的不同之处在于不需要再建nextcloud数据库,但是要新建用户和授权,新的用户跟mysqld01建的一样就好。

8、打开localhost/nextcloud输入数据库信息

配置成功

 利用docker镜像配置mysql集群+nextcloud集群+haproxy负载均衡第3张

免责声明:文章转载自《利用docker镜像配置mysql集群+nextcloud集群+haproxy负载均衡》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python subprocess模块【Hive】【impala】解析json(get_json_object)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

2020第44周Windows文件系统不区分大小写

由于Windows文件系统不区分大小写,所以你不能通过大小写来区分文件名或文件夹名,比如你在资源管理器中新建一个A.txt文件,想再建个a.txt时会提示你重名并自动重命名。这在Git操作时可能会遇到问题,比如你代码库里文件或文件夹修改了名称,默认Git认为是没变的,如果单纯让Git在仓库中区分大小写会产生两份文件并且无法在Windows系统中观察到),...

nutch+hadoop 配置使用

nutch+hadoop 配置使用 配置nutch+hadoop 1,下载nutch。如果不需要特别开发hadoop,则不需要下载hadoop。因为nutch里面带了hadoop core包以及相关配置 2,建立目录(根据自己喜好) /nutch /search       (nutch installation goes here) nutch安装到这里...

如何打开mo文件并修改 PoEdit

  mo文件是被编译了的文件,一般在汉化的时候会用到。 比如我想修改phpmyadmin 的界面信息,就需要修改phpmyadmin.mo的文件内容。 可是用编辑器editplus或者Sublime 2打开它,都是乱码。 原来,这个文件不能直接打开。 搜索了一下,网上的信息。 发现通过poedit软件,可以先将mo转化为po格式的文件,然后poedit就...

三、文件的操作、函数、类和对象

一、文件 文件的打开与关闭 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f = open('test.txt', 'w') 说明: 访问模式 说明 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 w 打开一个文件只用于写入。如果该文件已存...

OCR1:开源库

OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。优秀的开源OCR软件包括: Tesseract:原本由惠普开发的图像识别类库tesseract-ocr已经更新到2.04, 就是最近Goo...

主机入侵主流手法

一, 错误的配置 错误的配置有系统环境的配置不当和系统应用的配置不当,例如普通用户具有管理员权限、使用应用程序的默认配置等等,通过google或者baidu都可以使用搜索语法直接搜索到有配置漏洞的网站和服务器,例如phpmyadmin,MySQL默认配置,sqlserver sa空口令,以及任意文件读取,黑客可以通过这些轻而易举地入侵存在这些漏洞的服务器...