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

测试环境:

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管理节点

20180110232059547172.png

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

20180110232059549125.png

mysql-cluster配置成功

二、配置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输入数据库信息

配置成功

20180110232059551079.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值