316 lines
7.4 KiB
INI
316 lines
7.4 KiB
INI
## Example MaxScale.cnf configuration file
|
|
#
|
|
# Number of worker threads in MaxScale
|
|
#
|
|
# threads=<number of threads>
|
|
#
|
|
[maxscale]
|
|
threads=4
|
|
|
|
## Define a monitor that can be used to determine the state and role of
|
|
# the servers.
|
|
#
|
|
# Currently valid options for all monitors are:
|
|
#
|
|
# module=[mysqlmon|galeramon]
|
|
#
|
|
# List of server names which are being monitored
|
|
#
|
|
# servers=<server name 1>,<server name 2>,...,<server name N>
|
|
#
|
|
# Username for monitor queries, need slave replication and slave client privileges
|
|
# Password in plain text format, and monitor's sampling interval in milliseconds.
|
|
#
|
|
# user=<username>
|
|
# passwd=<plain txt password>
|
|
# monitor_interval=<sampling interval in milliseconds> (default 10000)
|
|
#
|
|
# Timeouts for monitor operations in backend servers - optional.
|
|
#
|
|
# backend_connect_timeout=<timeout in seconds>
|
|
# backend_write_timeout=<timeout in seconds>
|
|
# backend_read_timeout=<timeout in seconds>
|
|
#
|
|
## MySQL monitor-specific options:
|
|
#
|
|
# Enable detection of replication slaves lag via replication_heartbeat
|
|
# table - optional.
|
|
#
|
|
# detect_replication_lag=[1|0] (default 0)
|
|
#
|
|
# Allow previous master to be available even in case of stopped or misconfigured
|
|
# replication - optional.
|
|
#
|
|
# detect_stale_master=[1|0] (default 0)
|
|
#
|
|
## Galera monitor-specific options:
|
|
#
|
|
# If disable_master_failback is not set, recovery of previously failed master
|
|
# causes mastership to be switched back to it. Enabling the option prevents it.
|
|
#
|
|
# disable_master_failback=[0|1] (default 0)
|
|
#
|
|
## Examples:
|
|
|
|
[MySQL Monitor]
|
|
type=monitor
|
|
module=mysqlmon
|
|
servers=server1,server2,server3
|
|
user=myuser
|
|
passwd=mypwd
|
|
monitor_interval=10000
|
|
#backend_connect_timeout=
|
|
#backend_read_timeout=
|
|
#backend_write_timeout=
|
|
#detect_replication_lag=
|
|
#detect_stale_master=
|
|
|
|
[Galera Monitor]
|
|
type=monitor
|
|
module=galeramon
|
|
servers=server1,server2,server3
|
|
user=myuser
|
|
passwd=mypwd
|
|
monitor_interval=10000
|
|
#disable_master_failback=
|
|
|
|
## Filter definition
|
|
#
|
|
# Type specifies the section
|
|
#
|
|
# type=filter
|
|
#
|
|
# Module specifies which module implements the filter function
|
|
#
|
|
# module=[qlafilter|regexfilter|topfilter|teefilter]
|
|
#
|
|
# Options specify the log file for Query Log Filter
|
|
#
|
|
# options=<path to logfile>
|
|
#
|
|
# Match and replace are used in regexfilter
|
|
#
|
|
# match=fetch
|
|
# replace=select
|
|
#
|
|
# Count and filebase are used with topfilter to specify how many top queries are
|
|
# listed and where.
|
|
#
|
|
# count=<count>
|
|
# filebase=<path to output file>
|
|
#
|
|
# Match and service are used by tee filter to specify what queries should be
|
|
# duplicated and where the copy should be routed.
|
|
#
|
|
# match=insert.*HighScore.*values
|
|
# service=Cassandra
|
|
#
|
|
## Examples:
|
|
|
|
[qla]
|
|
type=filter
|
|
module=qlafilter
|
|
options=/tmp/QueryLog
|
|
|
|
[fetch]
|
|
type=filter
|
|
module=regexfilter
|
|
match=fetch
|
|
replace=select
|
|
|
|
|
|
## A series of service definition
|
|
#
|
|
# Name of router module, currently valid options are
|
|
#
|
|
# router=[readconnroute|readwritesplit|debugcli|CLI]
|
|
#
|
|
# List of server names for use of service - mandatory for readconnroute,
|
|
# readwritesplit, and debugcli
|
|
#
|
|
# servers=<server name 1>,<server name 2>,...,<server name N>
|
|
#
|
|
# Username to fetch password information with and password in plaintext
|
|
# format - for readconnroute and readwritesplit
|
|
#
|
|
# user=<username>
|
|
# passwd=<password in plain text format>
|
|
#
|
|
# flag for enabling the use of root user - for readconnroute and
|
|
# readwritesplite - optional.
|
|
#
|
|
# enable_root_user=[0|1] (default 0)
|
|
#
|
|
# Version string to be used in server handshake. Default value is that of
|
|
# MariaDB embedded library's - for readconnroute and readwritesplite - optional.
|
|
#
|
|
# version_string=<specific version string>
|
|
#
|
|
# Filters specify the filters through which the query is transferred and the
|
|
# order of their appearance on the list corresponds the order they are
|
|
# used. Values refer to names of filters configured in this file - for
|
|
# readconnroute and readwritesplit - optional.
|
|
#
|
|
# filters=<filter name1|filter name2|...|filter nameN>
|
|
#
|
|
## Read Connection Router specific router options.
|
|
#
|
|
# router_options specify the role in which the selected server must be.
|
|
#
|
|
# router_options=[master|slave|synced]
|
|
#
|
|
## Read/Write Split Router specific options.
|
|
#
|
|
# use_sql_variables_in specifies where sql variable modifications are
|
|
# routed - optional.
|
|
#
|
|
# use_sql_variables_in=[master|all] (default all)
|
|
#
|
|
# router_options=slave_selection_criteria specifies the selection criteria for
|
|
# slaves both in new session creation and when route target is selected - optional.
|
|
#
|
|
# router_options=
|
|
# slave_selection_criteria=[LEAST_CURRENT_OPERATIONS|LEAST_BEHIND_MASTER]
|
|
#
|
|
# max_slave_connections specifies how many slaves a router session can
|
|
# connect to - optional.
|
|
#
|
|
# max_slave_connections=<number, or percentage, of all slaves>
|
|
#
|
|
# max_slave_replication_lag specifies how much a slave is allowed to be behind
|
|
# the master and still become chosen routing target - optional, requires that
|
|
# monitor has detect_replication_lag=1 .
|
|
#
|
|
# max_slave_replication_lag=<allowed lag in seconds for a slave>
|
|
#
|
|
# Valid router modules currently are:
|
|
# readwritesplit, readconnroute, debugcli and CLI
|
|
#
|
|
## Examples:
|
|
|
|
[Read Connection Router]
|
|
type=service
|
|
router=readconnroute
|
|
servers=server1,server2,server3
|
|
user=myuser
|
|
passwd=mypwd
|
|
router_options=slave
|
|
|
|
[RW Split Router]
|
|
type=service
|
|
router=readwritesplit
|
|
servers=server1,server2,server3
|
|
user=myuser
|
|
passwd=mypwd
|
|
#use_sql_variables_in=
|
|
#max_slave_connections=100%
|
|
#max_slave_replication_lag=21
|
|
#router_options=slave_selection_criteria=
|
|
#filters=fetch|qla
|
|
|
|
[Debug Interface]
|
|
type=service
|
|
router=debugcli
|
|
|
|
[CLI]
|
|
type=service
|
|
router=cli
|
|
|
|
## Listener definitions for the services
|
|
#
|
|
# Type specifies section as listener one
|
|
#
|
|
# type=listener
|
|
#
|
|
# Service links the section to one of the service names used in this configuration
|
|
#
|
|
# service=<name of service section>
|
|
#
|
|
# Protocol is client protocol library name.
|
|
#
|
|
# protocol=[MySQLClient|telnetd|HTTPD|maxscaled]
|
|
#
|
|
# Port and address specify which port the service listens and the address limits
|
|
# listening to a specific network interface only. Address is optional.
|
|
#
|
|
# port=<Listening port>
|
|
# address=<Address to bind to>
|
|
#
|
|
# Socket is alternative for address. The specified socket path must be writable
|
|
# by the Unix user MaxScale runs as.
|
|
#
|
|
# socket=<Listening socket>
|
|
#
|
|
## Examples:
|
|
|
|
[Read Connection Listener]
|
|
type=listener
|
|
service=Read Connection Router
|
|
protocol=MySQLClient
|
|
address=192.168.100.102
|
|
port=4008
|
|
#socket=/tmp/readconn.sock
|
|
|
|
[RW Split Listener]
|
|
type=listener
|
|
service=RW Split Router
|
|
protocol=MySQLClient
|
|
port=4006
|
|
#socket=/tmp/rwsplit.sock
|
|
|
|
[Debug Listener]
|
|
type=listener
|
|
service=Debug Interface
|
|
protocol=telnetd
|
|
#address=127.0.0.1
|
|
port=4442
|
|
|
|
[CLI Listener]
|
|
type=listener
|
|
service=CLI
|
|
protocol=maxscaled
|
|
#address=localhost
|
|
port=6603
|
|
|
|
## Definition of the servers
|
|
#
|
|
# Type specifies the section as server one
|
|
#
|
|
# type=server
|
|
#
|
|
# The IP address or hostname of the machine running the database server that is
|
|
# being defined. MaxScale will use this address to connect to the backend
|
|
# database server.
|
|
#
|
|
# address=<IP|hostname>
|
|
#
|
|
# The port on which the database listens for incoming connections. MaxScale
|
|
# will use this port to connect to the database server.
|
|
#
|
|
# port=<port>
|
|
#
|
|
# The name for the protocol module to use to connect MaxScale to the database.
|
|
# Currently the only backend protocol supported is the MySQLBackend module.
|
|
#
|
|
# protocol=MySQLBackend
|
|
#
|
|
## Examples:
|
|
|
|
[server1]
|
|
type=server
|
|
address=192.168.100.101
|
|
port=3000
|
|
protocol=MySQLBackend
|
|
|
|
[server2]
|
|
type=server
|
|
address=192.168.100.102
|
|
port=3000
|
|
protocol=MySQLBackend
|
|
|
|
[server3]
|
|
type=server
|
|
address=192.168.100.103
|
|
port=3000
|
|
protocol=MySQLBackend
|