程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Haproxy+mysqlcluster(MySQL集群)配置

Haproxy+mysqlcluster(MySQL集群)配置

編輯:MySQL綜合教程

Haproxy+mysqlcluster(MySQL集群)配置


一、准備

1、准備服務器

建立有2個節點的MySQL CLuster體系,使用6台服務器建立Haproxy+mysql cluster( MySQL 集群) 體系

節點配置說明 節點 對應的IP和端口 Haproxy負載均衡(1個) centos 6.3 1.1.1.11 管理節點(1個) centos 6.3 1.1.1.30 SQL節點 (2個) centos 6.3 1.1.1.21 1.1.1.22 數據節點 (2個) centos 6.3 1.1.1.31 1.1.1.32

二、Haproxy負載均衡安裝配置

[root@HAPROXY001 ~]# yum install haproxy*

在/etc/haproxy/目錄下創建haproxy.cfg配置文件

--------------------------------------------------------------------------------

[root@HAPROXY001 ~]# vim /etc/haproxy/haproxy.cfg

 

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global

log 127.0.0.1 local0 info #日志相關

log 127.0.0.1 local1 notice

maxconn 4096

chroot /usr/local/haproxy

uid root

gid root

daemon

#debug

#quiet

pidfile /usr/local/haproxy/haproxy.pid

defaults

log global

mode http

#option httplog

option dontlognull

retries 3

option redispatch

maxconn 8000

contimeout 3000

clitimeout 30000

srvtimeout 30000

 

listen mysql

bind 0.0.0.0:3306 #代理端口

mode tcp #模式 TCP

option mysql-check #user root #mysql健康檢查 root為mysql登錄用戶名

balance roundrobin #調度算法

server mysql1 1.1.1.21:3306 check port 3306#weight 1 check inter 1s rise 2 fall 2 #健康檢查加上check

server mysql2 1.1.1.22:3306 check port 3306#weight 1 check inter 1s rise 2 fall 2

 

listen stats #監控

mode http

bind 0.0.0.0:8888

stats enable

stats uri /dbs

stats realm Global\ statistics

stats auth admin:hello123

--------------------------------------------------------------------------------

啟動服務:/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg

 

登錄浏覽器查看:  輸入admin hello123登錄

wKioL1R8RuOwLCEWAAYmE9A0L_4625.jpg

 

三、mysql cluster安裝

1,mysql cluster 各節點安裝,以管理節點為例

[root@MYSQLMANAGER ~]# wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz

[root@MYSQLMANAGER ~]# groupadd mysql

[root@MYSQLMANAGER ~]# useradd mysql -g mysql

[root@MYSQLMANAGER ~]# tar -xvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz

[root@MYSQLMANAGER ~]# mv mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64 /usr/local/mysql

[root@MYSQLMANAGER ~]# cd /usr/local/

[root@MYSQLMANAGER ~]# chown -R mysql:mysql mysql/

[root@MYSQLMANAGER ~]# cd mysql/

[root@MYSQLMANAGER ~]# scripts/mysql_install_db --user=mysql

 

2,節點配置

管理節點:

[root@MYSQLMANAGER ~]# vi /var/lib/mysql-cluster/config.ini

--------------------------------------------------------------------------------

[NDBD DEFAULT]

NoOfReplicas=2 #副本數量,建議使用默認的2

MaxNoOfConcurrentOperations=10000

DataMemory=1024M #每個數據節點中給數據分配的內存

IndexMemory=500M #每個數據節點中給索引分配的內存

BackupMemory: 50M

[NDB_MGMD]

#管理節點配置項

Nodeid= 1

HostName=1.1.1.30 #管理節點IP

DataDir=/usr/local/mysql/data #管理節點日志、配置目錄

ArbitrationRank: 1 #該節點的優先級別等級

[NDBD]

#數據節點配置項

Nodeid = 2 #第一個數據節點

HostName=1.1.1.31 #數據節點IP

DataDir=/usr/local/mysql/data #數據節點存放數據的目錄

[NDBD]

Nodeid = 3 #第二個數據節點

HostName=1.1.1.32

DataDir=/usr/local/mysql/data

[mysqld]

#SQL節點配置項

Nodeid = 4 #第一個SQL節點

HostName=1.1.1.21

[mysqld]

Nodeid = 5 #第二個SQL節點

HostName=1.1.1.22

[mysqld]

Nodeid = 6 #第三個SQL節點

HostName=1.1.1.254

[mysqld]

#建議保留一個SQL節點配置口

--------------------------------------------------------------------------------

 

數據節點: 兩數據節點配置一樣

 

[root@MYSQLDB001 ~]# vim /etc/my.cnf

--------------------------------------------------------------------------------

[mysqld]

datadir=/usr/local/mysql/data

socket=/usr/local//mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

#運行NDB存儲引擎

ndbcluster

#指定管理節點

ndb-connectstring=1.1.1.30:1186

 

[MYSQL_CLUSTER]

ndb-connectstring=1.1.1.30:1186

[NDB_MGM]

connect-string=1.1.1.30

 

[mysqld_safe]

log-error=/usr/local/mysql/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

--------------------------------------------------------------------------------


SQL節點配置:

 

 

[root@MYSQL001 ~]# cd /usr/local/mysql/

[root@MYSQL001 ~]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@MYSQL001 ~]# chmod +x /etc/rc.d/init.d/mysqld

[root@MYSQL001 ~]# chkconfig --add mysqld

[root@MYSQL001 ~]# vi /etc/my.cnf

--------------------------------------------------------------------------------

 

[mysqld]

server-id=4

#每個服務器的id不一樣

datadir=/usr/local/mysql/data

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

log-bin = /usr/local/mysql/log/mysql-bin.log

max_connections=1000

skip-name-resolve

 

#以下為mysql 主主模式的配置文件

# 忽略mysql數據庫復制

binlog-ignore-db=mysql

# 每次增長2

auto-increment-increment = 2

# 設置自動增長的字段的偏移量,即初始值為2

auto-increment-offset = 1

 

[mysqld_safe]

log-error=/usr/local/mysql/log/mysqld.log

pid-file=/usr/local/mysql/mysqld.pid

 

[MYSQLD]

ndbcluster

ndb-connectstring=1.1.1.30

[MYSQL_CLUSTER]

ndb-connectstring=1.1.1.30

[NDB_MGM]

connect-string=1.1.1.30

3,啟動服務

CLUSTER啟動的順序依次為:管理節點—數據節點—SQL節點 關閉順序相反

 

管理節點啟動:

[root@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

添加新節點後,重新加載管理節點配置信息:

 

[root@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini --initial

[root@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini --reload

 

數據節點啟動:

[root@MYSQLDB001 ~]# /usr/local/mysql/bin/ndbd --initial

注意:僅限第一次mysql節點啟動使用–-initial,後面再啟動不需要此參數

 

SQL節點啟動:

[root@MYSQL001 ~]# service mysqld start

 

四、mysql cluster 測試

1,查看cluster 信息

[root@MYSQLMANAGER ~]#ndb_mgm -e show

wKiom1R9M53gIIoEAAFvaL4okmM280.jpg

2,測試SQL數據同步

從SQL節點1登錄,創建數據庫和表,進行簡單測試。

[root@MYSQL001 ~]# mysql -uroot -p

mysql> create database test ;

mysql> use test;
Database changed

mysql> create table test1(id int,name varchar(10)) engine=ndb ;

mysql> insert into test1 values(1,'test');

mysql> select * from test1 ;

+------+---------+
| id | name |
+------+---------+
| 1 | test |
+------+---------+

從SQL節點2登錄,查看效果,庫,表和數據已經同步。

從SQL節點2節點插入一條數據,同樣登陸SQL節點1,也能看到數據已經同步

3,測試HA服務

停止SQL節點2服務查看

[root@MYSQL002 ~]# /etc/init.d/mysqld stop

Shutting down MySQL.... [ OK ]

wKioL1R9OILyn6L2AAXs559Vej8749.jpgwKiom1R9OEfyn9AzAAF8FYaGkuk795.jpg

mysql 服務 1.1.1.11:3306 依然可以正常使用。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved