標籤:分享 包括 技術分享 net check roo lis 下載 指定
測試環境:
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負載平衡
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負載平衡