maxscale 配置 mysql 读写分离

安装 maxscale

wget https://downloads.mariadb.com/MaxScale/2.2.15/centos/6server/x86_64/maxscale-2.2.15-1.centos.6.x86_64.rpm
rpm -ivh maxscale-2.2.15-1.centos.6.x86_64.rpm

创建maxscale用户,主库执行
注:此用户用来监控和实现maxscale内部调用get user等操作

create user maxscale@'%' identified by "WWW.tsb.c0m";
GRANT SELECT ON mysql.user TO maxscale@'%';
GRANT SELECT ON mysql.db TO maxscale@'%';
GRANT SELECT ON mysql.tables_priv TO maxscale@'%';
GRANT SHOW DATABASES ON *.* TO maxscale@'%';
GRANT ALL ON maxscale_schema.* TO maxscale@'%';
GRANT replication slave, replication client ON *.* TO maxscale@'%';


创建maxscale服务相关目录

mkdir -pv /data/logs/maxscale
mkdir -pv /data/appData/maxscale
mkdir -pv /data/tmp/maxscale/cache
# 授权
chown -R maxscale.maxscale /data/logs/maxscale
chown -R maxscale.maxscale /data/appData/maxscale
chown -R maxscale.maxscale /data/tmp/maxscale

修改maxscale配置文件/etc/maxscale.cnf

vim /etc/maxscale.cnf

[maxscale]
# 开启线程个数,默认为1.设置为auto会同cpu核数相同
threads=auto

# 启用日志文件中的高精度时间戳。启用此选项可为所有日志文件时间戳添加毫秒精度。
ms_timestamp=1
# 将消息记录到syslog 1启 0禁
syslog=1
# 将消息记录到MariaDB MaxScale的日志文件 1启 0禁
maxlog=1
# 不将maxscale.log文件写入共享内存 1启 0禁
log_to_shm=0
# 记录告警日志
log_warning=1
# 记录notice日志
log_notice=1
# 记录INFO日志
log_info=1
# 不记录debug日志
log_debug=0
# 禁用消息的扩充。如果启用此选项,则每条记录的消息都会附加记录消息的函数的名称。这主要用于开发目的,因此默认情况下禁用。
log_augmentation=0

# 日志目录
logdir=/data/logs/maxscale/
# 数据目录
datadir=/data/appData/maxscale/
# 缓存目录
cachedir=/data/tmp/maxscale/cache/

# 定义后端数据库服务器
[server1]
type=server
address=10.0.1.100
port=3306
protocol=MySQLBackend

[server2]
type=server
address=10.0.1.101
port=3306
protocol=MySQLBackend

# 监控
[MySQL-Monitor]
type=monitor
module=mysqlmon
servers=server1,server2
user=maxscale
passwd=mysqlPassword
# 监控心跳为 10s
monitor_interval=10000
# 当slave全部断掉时,maxscale仍然可用,将所有的访问指向master节点
detect_stale_master=true

# 读写分离
[Read-Write-Service]
type=service
router=readwritesplit
servers=server1,server2
user=maxscale
passwd=mysqlPassword
# 从库最大连接
max_slave_connections=100%
# 允许主从最大间隔(s)
max_slave_replication_lag = 5
# sql语句中的存在变量可以在所有库中执行
use_sql_variables_in = all

[MaxAdmin-Service]
type=service
router=cli

# 端口监听
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MySQLClient
port=4006

[MaxAdmin-Listener]
type=listener
service=MaxAdmin-Service
protocol=maxscaled
socket=default

启动maxscale服务

/etc/init.d/maxscale start
chkconfig maxscale on

猜你喜欢

转载自www.cnblogs.com/Liudarren/p/12408525.html