设为首页 收藏本站
查看: 339|回复: 0

[经验分享] Haproxy+mysql cluster( MySQL 集群) 配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-8 12:42:55 | 显示全部楼层 |阅读模式

一、准备

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负载均衡安装配置
[iyunv@HAPROXY001 ~]# yum install  haproxy*
在/etc/haproxy/目录下创建haproxy.cfg配置文件
--------------------------------------------------------------------------------
[iyunv@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 各节点安装,以管理节点为例
[iyunv@MYSQLMANAGER ~]# wget http://cdn.mysql.com/Downloads/M ... bc2.5-x86_64.tar.gz
[iyunv@MYSQLMANAGER ~]# groupadd mysql
[iyunv@MYSQLMANAGER ~]# useradd mysql -g mysql
[iyunv@MYSQLMANAGER ~]# tar -xvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz
[iyunv@MYSQLMANAGER ~]# mv mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64 /usr/local/mysql
[iyunv@MYSQLMANAGER ~]# cd /usr/local/
[iyunv@MYSQLMANAGER ~]# chown -R mysql:mysql mysql/
[iyunv@MYSQLMANAGER ~]# cd mysql/
[iyunv@MYSQLMANAGER ~]# scripts/mysql_install_db --user=mysql

2,节点配置
管理节点:

[iyunv@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节点配置口
--------------------------------------------------------------------------------

数据节点: 两数据节点配置一样

[iyunv@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节点配置:


[iyunv@MYSQL001 ~]# cd /usr/local/mysql/
[iyunv@MYSQL001 ~]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[iyunv@MYSQL001 ~]# chmod +x /etc/rc.d/init.d/mysqld
[iyunv@MYSQL001 ~]# chkconfig --add mysqld
[iyunv@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节点 关闭顺序相反

管理节点启动:
[iyunv@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

添加新节点后,重新加载管理节点配置信息:
[iyunv@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini --initial

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

数据节点启动:

[iyunv@MYSQLDB001 ~]# /usr/local/mysql/bin/ndbd --initial
注意:仅限第一次mysql节点启动使用–-initial,后面再启动不需要此参数

SQL节点启动:
[iyunv@MYSQL001 ~]# service mysqld start

四、mysql cluster 测试
1,查看cluster 信息
[iyunv@MYSQLMANAGER ~]#ndb_mgm -e show
wKiom1R9M53gIIoEAAFvaL4okmM280.jpg

2,测试SQL数据同步

从SQL节点1登录,创建数据库和表,进行简单测试。

[iyunv@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服务查看

[iyunv@MYSQL002 ~]# /etc/init.d/mysqld stop
Shutting down MySQL....                                    [  OK  ]
wKioL1R9OILyn6L2AAXs559Vej8749.jpg wKiom1R9OEfyn9AzAAF8FYaGkuk795.jpg
mysql 服务 1.1.1.11:3306 依然可以正常使用。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-37573-1-1.html 上篇帖子: mysql报错:Access denied for user 'root'@'localhost' 的一次解决办法 下篇帖子: MySQL案例分享之系统消息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表