zoukankan      html  css  js  c++  java
  • 利用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管理节点

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

    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输入数据库信息

    配置成功

     

  • 相关阅读:
    Redis 安装
    Git的安装和使用
    HTML5 本地存储+layer弹层组件制作记事本
    PHP 微信公众号开发
    PHP 微信公众号开发
    Electron 安装与使用
    HTML5 桌面消息提醒
    Composer安装和使用
    玄 学
    区间内的真素数
  • 原文地址:https://www.cnblogs.com/fangdai/p/6107659.html
Copyright © 2011-2022 走看看