目录
1,安装
最好在单独服务器上安装,如果资源不足,可以和某个MySQL服务器放在一起。
<1>下载安装包
下载地址:根据自己的服务器选择合适的版本https://downloads.mariadb.com/MaxScale/
https://downloads.mariadb.com/MaxScale/1.4.3/centos/6/x86_64/maxscale-1.4.3-1.centos.6.x86_64.rpm
<2>maxscale所要支持的软件库
yum install libaio.x86_64 libaio-devel.x86_64 novacom-server.x86_64 libedit -y
或者直接yum -y install libaio
<3>完成安装
rpm -ivh max....rpm
2,配置一主二从的复制结构
(139主,140,141从)
3,创建用户
创建监控用户:
create user scalemon@'192.168.195.%' identified by "zh179883";
grant replication slave, replication client on *.* to scalemon@'192.168.195.%';
创建路由用户:
create user maxscale@'192.168.195.%' identified by "zh179883";
grant select on mysql.* to maxscale@'192.168.195.%';
如果不想看到明文密码,可以生成加密key
maxkeys,生成加密文件
maxkeys 加密文件 设置的密码(会生成加密字符串)
4,修改配置:
线程可修改为4/8
[server1]
type=server
address=192.168.195.139
port=3306
protocol=MySQLBackend
[server2]
type=server
address=192.168.195.140
port=3306
protocol=MySQLBackend
[server3]
type=server
address=192.168.195.141
port=3306
protocol=MySQLBackend
监控模块配置
[MySQL Monitor]
type=monitor
module=mysqlmon
servers=server1,server2,server3
user=scalemon
passwd=zh179883
monitor_interval=1000
只读模块(Read Only Service),由于我们要进行读写分离,就不对负载均衡进行单独配置了,可删除,因为读写分离同样也可以实现读负载均衡的目的
[Read-Write Service]
type=service
router=readwritesplit
servers=server1,server2,server3
user=maxscale
passwd=zh179883
max_slave_connections=100% 表示最大可用的从服务器的数量,默认是使用所有的从服务器
max_slave_replication_lag=60
从服务器延迟大于多少秒后,就不参与读写分离的工作中来了,这样可以把延迟大的服务器排除出我们的集群
[Read-Only Listener]我们没有使用只读服务,所以关闭只读监听
[Read-Write Listener]
type=listener
service=Read-Write Service
protocol=MySQLClient
port=4006
建议使用3006端口,这样就不用修改mysql程序里的端口了,但这里我们将其和mysql端口放在了一起,所以改为4006
5,启动:
maxscale --config=/etc/maxscale.cnf
查看端口状态:netstat -ntelp
-
4006 是连接 MaxScale 时使用的端口
-
6603 是 MaxScale 管理器的端口
6,登录 MaxScale 管理器
查看一下数据库连接状态,默认的用户名和密码是 admin/mariadb
maxadmin --user=admin --password=mariadb
list servers(查看启动了哪些服务,列出服务器的信息)
-------------------+-----------------+-------+-------------+--------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
server1 | 192.168.195.139 | 3306 | 0 | Master, Running
server2 | 192.168.195.140 | 3306 | 0 | Slave, Running
server3 | 192.168.195.141 | 3306 | 0 | Slave, Running
-------------------+-----------------+-------+-------------+--------------------
7,测试:
mysql -P4006 -utest -pzh179883 -h192.168.195.139
select @@hostname发现是从服务器
开启事务,发现是主服务器