继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用Haproxy对MariaDB做负载均衡

largeQ
关注TA
已关注
手记 981
粉丝 92
获赞 585

服务器环境:

wKioL1NrXYri1iztAAEdbd2C-Vc420.jpg

安装

vim /etc/apt/sources.list.d/mariadb.list     # 添加以下两句

deb http://mirror.yongbok.net/mariadb/repo/5.5/ubuntu precise main

deb-src http://mirror.yongbok.net/mariadb/repo/5.5/ubuntu precise main

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

apt-get update

apt-get install mariadb-server-5.5

/etc/mysql/my.cnf 

多实例配置文件:3306,3307,3308

[mysqld_multi]

mysqld      = /usr/bin/mysqld_safe

mysqladmin  = /usr/bin/mysqladmin

user        = root           # 指定用于启动、停止mysql实例的用户

log     = /var/log/mysql/mysqld_multi.log  

[client]

port        = 3306

socket      = /var/run/mysql/mysql.sock

default-character-set   = utf8

[mysqld3306]

port        = 3306

socket      = /var/run/mysql/mysql.sock

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

datadir     = /var/lib/mysql/3306

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

default-storage-engine  = MyISAM

character-set-server    = utf8

skip-name-resolve

collation-server        = utf8_general_ci

log-error               = /var/log/mysql/mysqld-error.log

log-slow-admin-statements

long-query-time         = 3

slow-query-log

slow-query-log-file     = /var/log/mysql/mysqld-slow.log

innodb_buffer_pool_size=1G

innodb_additional_mem_pool_size=20M

max_connections     = 1000

tmpdir      = /tmp/

server-id   = 2

log-slave-updates

log-bin         = mysql-bin

binlog_format   = mixed

relay_log       = mysql-relay-bin

replicate-do-db        = wordpress

replicate-ignore-db        = mysql

replicate-ignore-db        = information_schema

replicate-ignore-db        = performance_schema

replicate-ignore-db        = test

[mysqldump]

quick

max_allowed_packet = 16M

[mysqld3307]

port        = 3307

socket      = /var/run/mysql/mysql-3307.sock

pid-file    = /var/run/mysql/mysql-3307.pid

datadir     = /var/lib/mysql/3307

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

default-storage-engine  = MyISAM

character-set-server    = utf8

skip-name-resolve

collation-server        = utf8_general_ci

log-error               = /var/log/mysql/mysqld-error-3307.log

log-slow-admin-statements

long-query-time         = 3

slow-query-log

slow-query-log-file     = /var/log/mysql/mysqld-slow-3307.log

innodb_buffer_pool_size=1G

innodb_additional_mem_pool_size=20M

max_connections     = 1000

tmpdir      = /tmp/

server-id   = 2

log-slave-updates

log-bin         = mysql-bin

binlog_format   = mixed

relay_log       = mysql-relay-bin

replicate-do-db        = futurestar

replicate-do-db        = verywx

replicate-ignore-db        = mysql

replicate-ignore-db        = information_schema

replicate-ignore-db        = performance_schema

replicate-ignore-db        = test

[mysqldump]

quick

max_allowed_packet = 16M

[mysqld3308]

port        = 3308

socket      = /var/run/mysql/mysql-3308.sock

pid-file    = /var/run/mysql/mysql-3308.pid

datadir     = /var/lib/mysql/3308

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

default-storage-engine  = MyISAM

character-set-server    = utf8

skip-name-resolve

collation-server        = utf8_general_ci

log-error               = /var/log/mysql/mysqld-error-3308.log

log-slow-admin-statements

long-query-time         = 3

slow-query-log

slow-query-log-file     = /var/log/mysql/mysqld-slow-3308.log

innodb_buffer_pool_size=1G

innodb_additional_mem_pool_size=20M

max_connections     = 1000

tmpdir      = /tmp/

server-id   = 2

log-slave-updates

log-bin         = mysql-bin

binlog_format   = mixed

relay_log       = mysql-relay-bin

replicate-do-db        = futurestar

replicate-do-db        = verywx

replicate-ignore-db        = mysql

replicate-ignore-db        = information_schema

replicate-ignore-db        = performance_schema

replicate-ignore-db        = test

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

socket  = /var/run/mysql/mysql.sock

auto-rehash

default-character-set   = utf8

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

初始化数据库文件:

mysql_install_db --datadir=/var/lib/mysql/3306 --user=mysql

mysql_install_db --datadir=/var/lib/mysql/3307 --user=mysql

mysql_install_db --datadir=/var/lib/mysql/3308 --user=mysql

启动数据库:

mysqld_multi start 3306

mysqld_multi start 3307

mysqld_multi start 3308

查看启动情况:

netstat -tunlp | grep -E '(3306|3307|3308)'

wKioL1NrV5ig87b0AAB_xC-JOUY727.jpg

wKiom1NrWimwvRhwAANSvXGqZGk724.jpg

wKioL1NrWf7gC7IxAAFEWAJact0591.jpg

安装Haporxy

apt-get install haproxy

然后vim etc/default/haproxy

修改 ENABLED=0 -> ENABLED=1 保存。

修改haproxy配置文件:

vim /etc/haproxy/haproxy.cfg

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global

    log 127.0.0.1   local0

    log 127.0.0.1   local1 notice

    #log loghost    local0 info

    maxconn 4096

    #chroot /usr/share/haproxy

    user haproxy

    group haproxy

    daemon

    #debug

    #quiet

defaults

    log global

    mode    http

    #option httplog

    option  dontlognull

    retries 3

    option redispatch

    maxconn 2000

    contimeout  5000

    clitimeout  50000

    srvtimeout  50000

listen  mysql 0.0.0.0:6666

    mode tcp

    option mysql-check user root

    balance roundrobin

    server  mysql_1 127.0.0.1:3306 weight 1 check inter 1s rise 2 fall 5

    server  mysql_2 127.0.0.1:3307 weight 1 check inter 1s rise 2 fall 5

    server  mysql_3 127.0.0.1:3308 weight 1 check inter 1s rise 2 fall 5

                                                                                                         

listen stats

    mode http

    bind 0.0.0.0:8888

    stats enable

    stats uri /dbs

    stats realm Global\ statistics

    stats auth admin:admin

                                                                                                         

    errorfile   400 /etc/haproxy/errors/400.http

    errorfile   403 /etc/haproxy/errors/403.http

    errorfile   408 /etc/haproxy/errors/408.http

    errorfile   500 /etc/haproxy/errors/500.http

    errorfile   502 /etc/haproxy/errors/502.http

    errorfile   503 /etc/haproxy/errors/503.http

    errorfile   504 /etc/haproxy/errors/504.http

执行命令:

/etc/init.d/haproxy start

测试结果:

wKioL1NrXIbTgo1GAAJI5Gv0EDI394.jpg

wKiom1NrXLGQzJiDAAHAOUvDXvs301.jpg

wKioL1NrXIaDhmMQAAF6jyMU-AQ809.jpg

查看haproxy监控页面:

wKiom1NrXQuAe5xBAAcFX6jljjw614.jpg

配置成功。

©著作权归作者所有:来自51CTO博客作者birdinroom的原创作品,如需转载,请注明出处,否则将追究法律责任

haproxy mariadb mysq群集


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP