This page explains how to set up a standard Primary/Replica replication topology for MariaDB Enterprise Server.
$ sudo yum install curl$ sudo apt install curl apt-transport-https$ curl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setup$ echo "${checksum} mariadb_es_repo_setup" \
| sha256sum -c -$ chmod +x mariadb_es_repo_setup$ sudo ./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply \
--skip-maxscale \
--skip-tools \
--mariadb-server-version="11.4"$ sudo yum install MariaDB-server MariaDB-backup$ sudo apt update
$ sudo apt install mariadb-server mariadb-backup$ sudo zypper install MariaDB-server MariaDB-backup$ sudo systemctl stop mariadb[mariadb]
bind_address = 0.0.0.0
log_bin = mariadb-bin.log
server_id = 1$ systemctl start mariadbCREATE USER 'repl'@'192.0.2.%' IDENTIFIED BY 'repl_passwd';GRANT REPLICATION SLAVE,
REPLICATION CLIENT
ON *.* TO repl@'%';CREATE USER 'mxs'@'192.0.2.%'
IDENTIFIED BY 'mxs_passwd';GRANT SHOW DATABASES ON *.* TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.columns_priv TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.db TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.procs_priv TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.proxies_priv TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.roles_mapping TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.tables_priv TO 'mxs'@'192.0.2.%';
GRANT SELECT ON mysql.user TO 'mxs'@'192.0.2.%';GRANT SUPER,
REPLICATION CLIENT,
RELOAD,
PROCESS,
SHOW DATABASES,
EVENT
ON *.* TO 'mxs'@'192.0.2.%';$ sudo yum install curl$ sudo apt install curl apt-transport-https$ sudo zypper install curl$ curl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setup
$ echo "${checksum} mariadb_es_repo_setup" \
| sha256sum -c -
$ chmod +x mariadb_es_repo_setup
$ sudo ./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply \
--skip-server \
--skip-tools \
--mariadb-maxscale-version="25.01"$ sudo yum install maxscale$ sudo apt install maxscale$ sudo zypper install maxscale$ systemctl status mariadb$ sudo systemctl start mariadb$ sudo mariadb
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 11.4.5-3-MariaDB-Enterprise MariaDB Enterprise Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>SHOW REPLICA STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.0.2.1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-bin.000001
Read_Master_Log_Pos: 645
Relay_Log_File: li282-189-relay-bin.000002
Relay_Log_Pos: 946
Relay_Master_Log_File: mariadb-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 645
Relay_Log_Space: 1259
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: Slave_Pos
Gtid_IO_Pos: 0-1-2
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: optimistic
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Slave_DDL_Groups: 2
Slave_Non_Transactional_Groups: 0
Slave_Transactional_Groups: 0$ sudo mariadbCREATE DATABASE IF NOT EXISTS test;
CREATE TABLE test.contacts (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100)
);$ sudo mariadbSHOW CREATE TABLE test.contacts\G;$ sudo mariadbINSERT INTO test.contacts (first_name, last_name, email)
VALUES
("Kai", "Devi", "kai.devi@example.com"),
("Lee", "Wang", "lee.wang@example.com");$ sudo mariadbSELECT * FROM test.contacts;
+----+------------+-----------+----------------------+
| id | first_name | last_name | email |
+----+------------+-----------+----------------------+
| 1 | Kai | Devi | kai.devi@example.com |
| 2 | Lee | Wang | lee.wang@example.com |
+----+------------+-----------+----------------------+[maxscale]
threads = auto
admin_host = 0.0.0.0
admin_secure_gui = false$ sudo systemctl restart maxscale$ maxctrl create server node1 192.0.2.101
$ maxctrl create server node2 192.0.2.102
$ maxctrl create server node3 192.0.2.103$ maxctrl create monitor mdb_monitor mariadbmon \
user=mxs \
password='MAXSCALE_USER_PASSWORD' \
replication_user=repl \
replication_password='REPLICATION_USER_PASSWORD' \
--servers node1 node2 node3$ maxctrl create service connection_router_service readconnroute \
user=mxs \
password='MAXSCALE_USER_PASSWORD' \
router_options=slave \
--servers node1 node2 node3$ maxctrl create listener connection_router_service connection_router_listener 3308 \
protocol=MariaDBClient$ maxctrl create service query_router_service readwritesplit \
user=mxs \
password='MAXSCALE_USER_PASSWORD' \
--servers node1 node2 node3$ maxctrl create listener query_router_service query_router_listener 3307 \
protocol=MariaDBClient$ maxctrl start services$ sudo systemctl stop mariadb[mariadb]
bind_address = 0.0.0.0
log_bin = mariadb-bin.log
server_id = 1$ sudo mariadb-backup --backup \
--user=mariadb-backup_user \
--password=mariadb-backup_passwd \
--target-dir=/data/backup/replica_backup$ sudo mariadb-backup --prepare \
--target-dir=/data/backup/replica_backup$ sudo rsync -av /data/backup/replica_backup 192.0.2.11:/data/backup/$ sudo mv /var/lib/mysql /var/lib/mysql_backup$ sudo mariadb-backup --copy-back \
--target-dir=/data/backup/replica_backup$ sudo chown -R mysql:mysql /var/lib/mysql$ systemctl start mariadb$ cat xtrabackup_binlog_info
mariadb-bin.000096 568 0-1-2001,1-2-5139$ sudo mariadbSET GLOBAL gtid_slave_pos='0-1-2001,1-2-5139';CHANGE MASTER TO
MASTER_USER = "repl",
MASTER_HOST = "192.0.2.10",
MASTER_PASSWORD = "repl_passwd",
MASTER_USE_GTID = slave_pos;START REPLICA;SHOW REPLICA STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.0.2.10
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-bin.000001
Read_Master_Log_Pos: 645
Relay_Log_File: li282-189-relay-bin.000002
Relay_Log_Pos: 946
Relay_Master_Log_File: mariadb-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 645
Relay_Log_Space: 1259
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: Slave_Pos
Gtid_IO_Pos: 0-1-2
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: optimistic
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Slave_DDL_Groups: 2
Slave_Non_Transactional_Groups: 0
Slave_Transactional_Groups: 0$ maxctrl show maxscaleββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Version β 25.01.2 β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Commit β 3761fa7a52046bc58faad8b5a139116f9e33364c β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Started At β Thu, 05 Aug 2021 20:21:20 GMT β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Activated At β Thu, 05 Aug 2021 20:21:20 GMT β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Uptime β 868 β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Config Sync β null β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Parameters β { β
β β "admin_auth": true, β
β β "admin_enabled": true, β
β β "admin_gui": true, β
β β "admin_host": "0.0.0.0", β
β β "admin_log_auth_failures": true, β
β β "admin_pam_readonly_service": null, β
β β "admin_pam_readwrite_service": null, β
β β "admin_port": 8989, β
β β "admin_secure_gui": false, β
β β "admin_ssl_ca_cert": null, β
β β "admin_ssl_cert": null, β
β β "admin_ssl_key": null, β
β β "admin_ssl_version": "MAX", β
β β "auth_connect_timeout": "10000ms", β
β β "auth_read_timeout": "10000ms", β
β β "auth_write_timeout": "10000ms", β
β β "cachedir": "/var/cache/maxscale", β
β β "config_sync_cluster": null, β
β β "config_sync_interval": "5000ms", β
β β "config_sync_password": "*****", β
β β "config_sync_timeout": "10000ms", β
β β "config_sync_user": null, β
β β "connector_plugindir": "/usr/lib64/mysql/plugin", β
β β "datadir": "/var/lib/maxscale", β
β β "debug": null, β
β β "dump_last_statements": "never", β
β β "execdir": "/usr/bin", β
β β "language": "/var/lib/maxscale", β
β β "libdir": "/usr/lib64/maxscale", β
β β "load_persisted_configs": true, β
β β "local_address": null, β
β β "log_debug": false, β
β β "log_info": false, β
β β "log_notice": true, β
β β "log_throttling": { β
β β "count": 10, β
β β "suppress": 10000, β
β β "window": 1000 β
β β }, β
β β "log_warn_super_user": false, β
β β "log_warning": true, β
β β "logdir": "/var/log/maxscale", β
β β "max_auth_errors_until_block": 10, β
β β "maxlog": true, β
β β "module_configdir": "/etc/maxscale.modules.d", β
β β "ms_timestamp": false, β
β β "passive": false, β
β β "persistdir": "/var/lib/maxscale/maxscale.cnf.d", β
β β "piddir": "/var/run/maxscale", β
β β "query_classifier": "qc_sqlite", β
β β "query_classifier_args": null, β
β β "query_classifier_cache_size": 289073971, β
β β "query_retries": 1, β
β β "query_retry_timeout": "5000ms", β
β β "rebalance_period": "0ms", β
β β "rebalance_threshold": 20, β
β β "rebalance_window": 10, β
β β "retain_last_statements": 0, β
β β "session_trace": 0, β
β β "skip_permission_checks": false, β
β β "sql_mode": "default", β
β β "syslog": true, β
β β "threads": 1, β
β β "users_refresh_interval": "0ms", β
β β "users_refresh_time": "30000ms", β
β β "writeq_high_water": 16777216, β
β β "writeq_low_water": 8192 β
β β } β
ββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ$ maxctrl list serversββββββββββ¬ββββββββββββββ¬βββββββ¬ββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββ
β Server β Address β Port β Connections β State β GTID β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node1 β 192.0.2.101 β 3306 β 0 β Slave, Synced, Running β β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node2 β 192.0.2.102 β 3306 β 0 β Slave, Synced, Running β β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node3 β 192.0.2.103 β 3306 β 0 β Master, Synced, Running β β
ββββββββββ΄ββββββββββββββ΄βββββββ΄ββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββ$ maxctrl show server node3βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β Server β node3 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Address β 192.0.2.103 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Port β 3306 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β State β Master, Synced, Running β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Version β 11.4.5-3-MariaDB-enterprise-log β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Last Event β master_up β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Triggered At β Thu, 05 Aug 2021 20:22:26 GMT β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Services β connection_router_service β
β β query_router_service β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Monitors β cluster_monitor β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Master ID β -1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Node ID β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Slave Server IDs β β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Current Connections β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Total Connections β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Max Connections β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Statistics β { β
β β "active_operations": 0, β
β β "adaptive_avg_select_time": "0ns", β
β β "connection_pool_empty": 0, β
β β "connections": 1, β
β β "max_connections": 1, β
β β "max_pool_size": 0, β
β β "persistent_connections": 0, β
β β "reused_connections": 0, β
β β "routed_packets": 0, β
β β "total_connections": 1 β
β β } β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Parameters β { β
β β "address": "192.0.2.103", β
β β "disk_space_threshold": null, β
β β "extra_port": 0, β
β β "monitorpw": null, β
β β "monitoruser": null, β
β β "persistmaxtime": "0ms", β
β β "persistpoolmax": 0, β
β β "port": 3306, β
β β "priority": 0, β
β β "proxy_protocol": false, β
β β "rank": "primary", β
β β "socket": null, β
β β "ssl": false, β
β β "ssl_ca_cert": null, β
β β "ssl_cert": null, β
β β "ssl_cert_verify_depth": 9, β
β β "ssl_cipher": null, β
β β "ssl_key": null, β
β β "ssl_verify_peer_certificate": false, β
β β "ssl_verify_peer_host": false, β
β β "ssl_version": "MAX" β
β β } β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββ$ maxctrl list monitorsβββββββββββββββββββ¬ββββββββββ¬ββββββββββββββββββββββ
β Monitor β State β Servers β
βββββββββββββββββββΌββββββββββΌββββββββββββββββββββββ€
β cluster_monitor β Running β node1, node2, node3 β
βββββββββββββββββββ΄ββββββββββ΄ββββββββββββββββββββββ$ maxctrl show monitor cluster_monitorβββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Monitor β cluster_monitor β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Module β galeramon β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β State β Running β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Servers β node1 β
β β node2 β
β β node3 β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Parameters β { β
β β .. β
β β } β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Monitor Diagnostics β { β
β β .. β
β β } β
βββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββ$ maxctrl list servicesβββββββββββββββββββββββββββββ¬βββββββββββββββββ¬ββββββββββββββ¬ββββββββββββββββββββ¬ββββββββββββββββββββββ
β Service β Router β Connections β Total Connections β Servers β
βββββββββββββββββββββββββββββΌβββββββββββββββββΌββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββββ€
β connection_router_service β readconnroute β 0 β 0 β node1, node2, node3 β
βββββββββββββββββββββββββββββΌβββββββββββββββββΌββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββββ€
β query_router_service β readwritesplit β 1 β 1 β node1, node2, node3 β
βββββββββββββββββββββββββββββ΄βββββββββββββββββ΄ββββββββββββββ΄ββββββββββββββββββββ΄ββββββββββββββββββββββ$ maxctrl show service query_router_serviceβββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service β query_router_service β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Router β readwritesplit β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β State β Started β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Started At β Thu Aug 5 20:23:38 2021 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Current Connections β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Total Connections β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Max Connections β 1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Cluster β β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Servers β node1 β
β β node2 β
β β node3 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Services β β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Filters β β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Parameters β { β
β β "auth_all_servers": false, β
β β "causal_reads": "false", β
β β "causal_reads_timeout": "10000ms", β
β β "connection_keepalive": "300000ms", β
β β "connection_timeout": "0ms", β
β β "delayed_retry": false, β
β β "delayed_retry_timeout": "10000ms", β
β β "disable_sescmd_history": false, β
β β "enable_root_user": false, β
β β "idle_session_pool_time": "-1000ms", β
β β "lazy_connect": false, β
β β "localhost_match_wildcard_host": true, β
β β "log_auth_warnings": true, β
β β "master_accept_reads": false, β
β β "master_failure_mode": "fail_instantly", β
β β "master_reconnection": false, β
β β "max_connections": 0, β
β β "max_sescmd_history": 50, β
β β "max_slave_connections": 255, β
β β "max_slave_replication_lag": "0ms", β
β β "net_write_timeout": "0ms", β
β β "optimistic_trx": false, β
β β "password": "*****", β
β β "prune_sescmd_history": true, β
β β "rank": "primary", β
β β "retain_last_statements": -1, β
β β "retry_failed_reads": true, β
β β "reuse_prepared_statements": false, β
β β "router": "readwritesplit", β
β β "session_trace": false, β
β β "session_track_trx_state": false, β
β β "slave_connections": 255, β
β β "slave_selection_criteria": "LEAST_CURRENT_OPERATIONS", β
β β "strict_multi_stmt": false, β
β β "strict_sp_calls": false, β
β β "strip_db_esc": true, β
β β "transaction_replay": false, β
β β "transaction_replay_attempts": 5, β
β β "transaction_replay_max_size": 1073741824, β
β β "transaction_replay_retry_on_deadlock": false, β
β β "type": "service", β
β β "use_sql_variables_in": "all", β
β β "user": "mxs", β
β β "version_string": null β
β β } β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Router Diagnostics β { β
β β "avg_sescmd_history_length": 0, β
β β "max_sescmd_history_length": 0, β
β β "queries": 1, β
β β "replayed_transactions": 0, β
β β "ro_transactions": 0, β
β β "route_all": 0, β
β β "route_master": 0, β
β β "route_slave": 1, β
β β "rw_transactions": 0, β
β β "server_query_statistics": [ β
β β { β
β β "avg_selects_per_session": 0, β
β β "avg_sess_duration": "0ns", β
β β "id": "node2", β
β β "read": 1, β
β β "total": 1, β
β β "write": 0 β
β β } β
β β ] β
β β } β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ$ sudo mariadbCREATE USER 'app_user'@'192.0.2.104' IDENTIFIED BY 'app_user_passwd';GRANT ALL ON test.* TO 'app_user'@'192.0.2.104';CREATE USER 'app_user'@'192.0.2.11' IDENTIFIED BY 'app_user_passwd';GRANT ALL ON test.* TO 'app_user'@'192.0.2.11';$ mariadb --host 192.0.2.104 --port 3307
--user app_user --password$ maxctrl list listenersββββββββββββββββββββββββββββββ¬βββββββ¬βββββββ¬ββββββββββ¬ββββββββββββββββββββββββββββ
β Name β Port β Host β State β Service β
ββββββββββββββββββββββββββββββΌβββββββΌβββββββΌββββββββββΌββββββββββββββββββββββββββββ€
β connection_router_listener β 3308 β :: β Running β connection_router_service β
ββββββββββββββββββββββββββββββΌβββββββΌβββββββΌββββββββββΌββββββββββββββββββββββββββββ€
β query_router_listener β 3307 β :: β Running β query_router_service β
ββββββββββββββββββββββββββββββ΄βββββββ΄βββββββ΄ββββββββββ΄ββββββββββββββββββββββββββββ$ mariadb --host 192.0.2.104 --port 3308 \
--user app_user --passwordSELECT @@global.hostname;
+-------------------+
| @@global.hostname |
+-------------------+
| node2 |
+-------------------+$ maxctrl list serversββββββββββ¬ββββββββββββββ¬βββββββ¬ββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββ
β Server β Address β Port β Connections β State β GTID β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node1 β 192.0.2.101 β 3306 β 0 β Slave, Synced, Running β β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node2 β 192.0.2.102 β 3306 β 0 β Slave, Synced, Running β β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node3 β 192.0.2.103 β 3306 β 0 β Master, Synced, Running β β
ββββββββββ΄ββββββββββββββ΄βββββββ΄ββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββ$ maxctrl list listeners galerarouterββββββββββββββββββββββββββββββ¬βββββββ¬ββββββββ¬ββββββββββ¬ββββββββββββββββββββββββββββ
β Name β Port β Host β State β Service β
ββββββββββββββββββββββββββββββΌβββββββΌββββββββΌββββββββββΌββββββββββββββββββββββββββββ€
β connection_router_listener β 3308 β β Running β connection_router_service β
β query_router_listener β 3307 β β Running β query_router_service β
ββββββββββββββββββββββββββββββ΄βββββββ΄ββββββββ΄ββββββββββ΄ββββββββββββββββββββββββββββ$ mariadb --host=192.0.2.104 --port=3307 \
--user=app_user --password=app_user_passwdCREATE TABLE test.load_balancing_test (
id INT PRIMARY KEY AUTO_INCREMENT,
hostname VARCHAR(256)
);INSERT INTO test.load_balancing_test (hostname)
VALUES (@@global.hostname);SELECT * FROM test.load_balancing_test;+----+----------+
| id | hostname |
+----+----------+
| 1 | node3 |
| 4 | node3 |
| 7 | node3 |
+----+----------+$ maxctrl list serversββββββββββ¬ββββββββββββββ¬βββββββ¬ββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββ
β Server β Address β Port β Connections β State β GTID β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node1 β 192.0.2.101 β 3306 β 0 β Slave, Synced, Running β β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node2 β 192.0.2.102 β 3306 β 0 β Slave, Synced, Running β β
ββββββββββΌββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββββββββββΌβββββββ€
β node3 β 192.0.2.103 β 3306 β 0 β Master, Synced, Running β β
ββββββββββ΄ββββββββββββββ΄βββββββ΄ββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββ$ maxctrl list listenersββββββββββββββββββββββββββββββ¬βββββββ¬ββββββββ¬ββββββββββ¬ββββββββββββββββββββββββββββ
β Name β Port β Host β State β Service β
ββββββββββββββββββββββββββββββΌβββββββΌββββββββΌββββββββββΌββββββββββββββββββββββββββββ€
β connection_router_listener β 3308 β β Running β connection_router_service β
β query_router_listener β 3307 β β Running β query_router_service β
ββββββββββββββββββββββββββββββ΄βββββββ΄ββββββββ΄ββββββββββ΄ββββββββββββββββββββββββββββ$ mariadb --host=192.0.2.104 --port=3307 \
--user=app_user --password=app_user_passwdSELECT @@global.hostname;
+-------------------+
| @@global.hostname |
+-------------------+
| node2 |
+-------------------+
