欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

使用Haproxy对MariaDB做负载均衡_MySQL

程序员文章站 2022-04-06 12:14:36
...
MariaDB

服务器环境:

使用Haproxy对MariaDB做负载均衡_MySQL

安装

vim /etc/apt/sources.list.d/mariadb.list # 添加以下两句deb http://mirror.yongbok.net/mariadb/repo/5.5/ubuntu precise maindeb-src http://mirror.yongbok.net/mariadb/repo/5.5/ubuntu precise mainapt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943dbapt-get updateapt-get install mariadb-server-5.5

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

[mysqld_multi]mysqld= /usr/bin/mysqld_safemysqladmin= /usr/bin/mysqladminuser= root # 指定用于启动、停止mysql实例的用户log = /var/log/mysql/mysqld_multi.log[client]port= 3306socket= /var/run/mysql/mysql.sockdefault-character-set = utf8[mysqld3306]port= 3306socket= /var/run/mysql/mysql.sockpid-file= /var/run/mysql/mysql.piddatadir = /var/lib/mysql/3306skip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mdefault-storage-engine= MyISAMcharacter-set-server= utf8skip-name-resolvecollation-server= utf8_general_cilog-error = /var/log/mysql/mysqld-error.loglog-slow-admin-statementslong-query-time = 3slow-query-logslow-query-log-file = /var/log/mysql/mysqld-slow.loginnodb_buffer_pool_size=1Ginnodb_additional_mem_pool_size=20Mmax_connections = 1000tmpdir= /tmp/server-id = 2log-slave-updateslog-bin = mysql-binbinlog_format = mixedrelay_log = mysql-relay-binreplicate-do-db= wordpressreplicate-ignore-db= mysqlreplicate-ignore-db= information_schemareplicate-ignore-db= performance_schemareplicate-ignore-db= test[mysqldump]quickmax_allowed_packet = 16M[mysqld3307]port= 3307socket= /var/run/mysql/mysql-3307.sockpid-file= /var/run/mysql/mysql-3307.piddatadir = /var/lib/mysql/3307skip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mdefault-storage-engine= MyISAMcharacter-set-server= utf8skip-name-resolvecollation-server= utf8_general_cilog-error = /var/log/mysql/mysqld-error-3307.loglog-slow-admin-statementslong-query-time = 3slow-query-logslow-query-log-file = /var/log/mysql/mysqld-slow-3307.loginnodb_buffer_pool_size=1Ginnodb_additional_mem_pool_size=20Mmax_connections = 1000tmpdir= /tmp/server-id = 2log-slave-updateslog-bin = mysql-binbinlog_format = mixedrelay_log = mysql-relay-binreplicate-do-db= futurestarreplicate-do-db= verywxreplicate-ignore-db= mysqlreplicate-ignore-db= information_schemareplicate-ignore-db= performance_schemareplicate-ignore-db= test[mysqldump]quickmax_allowed_packet = 16M[mysqld3308]port= 3308socket= /var/run/mysql/mysql-3308.sockpid-file= /var/run/mysql/mysql-3308.piddatadir = /var/lib/mysql/3308skip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mdefault-storage-engine= MyISAMcharacter-set-server= utf8skip-name-resolvecollation-server= utf8_general_cilog-error = /var/log/mysql/mysqld-error-3308.loglog-slow-admin-statementslong-query-time = 3slow-query-logslow-query-log-file = /var/log/mysql/mysqld-slow-3308.loginnodb_buffer_pool_size=1Ginnodb_additional_mem_pool_size=20Mmax_connections = 1000tmpdir= /tmp/server-id = 2log-slave-updateslog-bin = mysql-binbinlog_format = mixedrelay_log = mysql-relay-binreplicate-do-db= futurestarreplicate-do-db= verywxreplicate-ignore-db= mysqlreplicate-ignore-db= information_schemareplicate-ignore-db= performance_schemareplicate-ignore-db= test[mysqldump]quickmax_allowed_packet = 16M[mysql]socket= /var/run/mysql/mysql.sockauto-rehashdefault-character-set = utf8[myisamchk]key_buffer_size = 20Msort_buffer_size = 20Mread_buffer = 2Mwrite_buffer = 2M[mysqlhotcopy]interactive-timeout

初始化数据库文件:

mysql_install_db --datadir=/var/lib/mysql/3306 --user=mysqlmysql_install_db --datadir=/var/lib/mysql/3307 --user=mysqlmysql_install_db --datadir=/var/lib/mysql/3308 --user=mysql

启动数据库:

mysqld_multi start 3306mysqld_multi start 3307mysqld_multi start 3308

查看启动情况:

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

使用Haproxy对MariaDB做负载均衡_MySQL

使用Haproxy对MariaDB做负载均衡_MySQL

使用Haproxy对MariaDB做负载均衡_MySQL

安装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.1global	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	#quietdefaults	log global	mode	http	#option httplog	optiondontlognull	retries 3	option redispatch	maxconn 2000	contimeout5000	clitimeout50000	srvtimeout50000listenmysql 0.0.0.0:6666	mode tcp	option mysql-check user root	balance roundrobin	servermysql_1 127.0.0.1:3306 weight 1 check inter 1s rise 2 fall 5	servermysql_2 127.0.0.1:3307 weight 1 check inter 1s rise 2 fall 5	servermysql_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

使用Haproxy对MariaDB做负载均衡_MySQL

使用Haproxy对MariaDB做负载均衡_MySQL

使用Haproxy对MariaDB做负载均衡_MySQL

查看haproxy监控页面:

使用Haproxy对MariaDB做负载均衡_MySQL

配置成功。

相关标签: 服务器