This page details step 8 of the 9-step procedure "Deploy ColumnStore Object Storage Topology".
This step tests MariaDB MaxScale 22.08.
Interactive commands are detailed. Alternatively, the described operations can be performed using automation.
Use command to view the global MaxScale configuration.
This action is performed on the MaxScale node:
Output should align to the global MaxScale configuration in the new configuration file you created.
Check Server Configuration Use the and commands to view the configured server objects.
This action is performed on the MaxScale node:
Obtain the full list of servers objects:
For each server object, view the configuration:
Output should align to the Server Object configuration you performed.
Use the and commands to view the configured monitors.
This action is performed on the MaxScale node:
Obtain the full list of monitors:
For each monitor, view the monitor configuration:
Output should align to the MariaDB Monitor (mariadbmon) configuration you performed.
Use the and commands to view the configured routing services.
This action is performed on the MaxScale node:
Obtain the full list of routing services:
For each service, view the service configuration:
Output should align to the or configuration you performed.
Applications should use a dedicated user account. The user account must be created on the primary server.
When users connect to MaxScale, MaxScale authenticates the user connection before routing it to an Enterprise Server node. Enterprise Server authenticates the connection as originating from the IP address of the MaxScale node.
The application users must have one user account with the host IP address of the application server and a second user account with the host IP address of the MaxScale node.
The requirement of a duplicate user account can be avoided by enabling the proxy_protocol parameter for MaxScale and the proxy_protocol_networks for Enterprise Server.
This action is performed on the primary Enterprise ColumnStore node:
Connect to the primary Enterprise ColumnStore node:
Create the database user account for your MaxScale node:
Replace 192.0.2.10 with the relevant IP address specification for your MaxScale node.
Passwords should meet your organization's password policies.
Grant the privileges required by your application to the database user account for your MaxScale node:
The privileges shown are designed to allow the tests in the subsequent sections to work. The user account for your production application may require different privileges.
This action is performed on the primary Enterprise ColumnStore node:
Create the database user account for your application server:
Replace 192.0.2.11 with the relevant IP address specification for your application server.
Passwords should meet your organization's password policies.
Grant the privileges required by your application to the d database user account for your application server:
The privileges shown are designed to allow the tests in the subsequent sections to work. The user account for your production application may require different privileges.
To test the connection, use the MariaDB Client from your application server to connect to an Enterprise ColumnStore node through MaxScale.
This action is performed on a client connected to the MaxScale node:
If you configured the Read Connection Router, confirm that MaxScale routes connections to the replica servers.
On the MaxScale node, use the command to view the available listeners and ports:
Open multiple terminals connected to your application server, in each, use MariaDB Client to connect to the listener port for the Read Connection Router (in the example, 3308):
Use the application user credentials you created for the --user and --password options.
In each terminal, query the hostname and server_id system variable and option to identify to which you're connected:
Different terminals should return different values since MaxScale routes the connections to different nodes.
Since the router was configured with the slave router option, the Read Connection Router only routes connections to replica servers.
If you configured the Read/Write Split Router, confirm that MaxScale routes write queries on this router to the primary Enterprise ColumnStore node.
on the MaxScale node, use the command to view the available listeners and ports:
Open multiple terminals connected to your application server, in each, use MariaDB Client to connect to the listener port for the Read/Write Split Router (in the example, 3307):
Use the application user credentials you created for the --user and --password options.
In one terminal, create the test table:
In each terminal, issue an insert.md statement to add a row to the example table with the values of the hostname and server_id system variable and option:
In one terminal, issue a SELECT statement to query the results:
While MaxScale is handling multiple connections from different terminals, it routed all connections to the current primary Enterprise ColumnStore node, which in the example is mcs1#.
If you configured the , confirm that MaxScale routes read queries on this router to replica servers.
On the MaxScale node, use the command to view the available listeners and ports:
In a terminal connected to your application server, use MariaDB Client to connect to the listener port for the (in the example, 3307):
Use the application user credentials you created for the --user and --password options.
Query the hostname and server_id to identify which server MaxScale routed you to.
Resend the query:
Confirm that MaxScale routes the SELECT statements to different replica servers.
For more information on different routing criteria, see slave_selection_criteria
Navigation in the procedure "Deploy ColumnStore Object Storage Topology":
This page was step 8 of 9.
Next: Step 9: Import Data
This page is: Copyright Β© 2025 MariaDB. All rights reserved.
$ maxctrl show maxscaleββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Version β 22.08.15 β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 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 β
ββββββββββΌβββββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββΌβββββββββ€
β mcs1 β 192.0.2.1 β 3306 β 1 β Master, Running β 0-1-25 β
ββββββββββΌβββββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββΌβββββββββ€
β mcs2 β 192.0.2.2 β 3306 β 1 β Slave, Running β 0-1-25 β
ββββββββββΌβββββββββββββββββΌβββββββΌββββββββββββββΌββββββββββββββββββΌβββββββββ€
β mcs3 β 192.0.2.3 β 3306 β 1 β Slave, Running β 0-1-25 β
ββββββββββ΄βββββββββββββββββ΄βββββββ΄ββββββββββββββ΄ββββββββββββββββββ΄βββββββββ$ maxctrl show server mcs1βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β Server β mcs1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Address β 192.0.2.1 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β Port β 3306 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β State β Master, 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 β columnstore_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.1", β
β β "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 β
βββββββββββββββββββββββΌββββββββββΌβββββββββββββββββββ€
β columnstore_monitor β Running β mcs1, mcs2, mcs3 β
βββββββββββββββββββββββ΄ββββββββββ΄βββββββββββββββββββ$ maxctrl show monitor columnstore_monitorβββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Monitor β columnstore_monitor β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Module β mariadbmon β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β State β Running β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Servers β mcs1 β
β β mcs2 β
β β mcs3 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Parameters β { β
β β "backend_connect_attempts": 1, β
β β "backend_connect_timeout": 3, β
β β "backend_read_timeout": 3, β
β β "backend_write_timeout": 3, β
β β "disk_space_check_interval": 0, β
β β "disk_space_threshold": null, β
β β "events": "all", β
β β "journal_max_age": 28800, β
β β "module": "mariadbmon", β
β β "monitor_interval": 2000, β
β β "password": "*****", β
β β "script": null, β
β β "script_timeout": 90, β
β β "user": "mxs" β
β β } β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Monitor Diagnostics β {} β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ$ maxctrl list servicesβββββββββββββββββββββββββββββ¬βββββββββββββββββ¬ββββββββββββββ¬ββββββββββββββββββββ¬βββββββββββββββββββ
β Service β Router β Connections β Total Connections β Servers β
βββββββββββββββββββββββββββββΌβββββββββββββββββΌββββββββββββββΌββββββββββββββββββββΌβββββββββββββββββββ€
β connection_router_Service β readconnroute β 0 β 0 β mcs1, mcs2, mcs3 β
βββββββββββββββββββββββββββββΌβββββββββββββββββΌββββββββββββββΌββββββββββββββββββββΌβββββββββββββββββββ€
β query_router_service β readwritesplit β 0 β 0 β mcs1, mcs2, mcs3 β
βββββββββββββββββββββββββββββ΄βββββββββββββββββ΄ββββββββββββββ΄ββββββββββββββββββββ΄βββββββββββββββββββ$ maxctrl show service query_router_serviceβββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service β query_router_service β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Router β readwritesplit β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β State β Started β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Started At β Sat Aug 28 21:41:16 2021 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Current Connections β 0 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Total Connections β 0 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Max Connections β 0 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Cluster β β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Servers β mcs1 β
β β mcs2 β
β β mcs3 β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 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": 0, β
β β "replayed_transactions": 0, β
β β "ro_transactions": 0, β
β β "route_all": 0, β
β β "route_master": 0, β
β β "route_slave": 0, β
β β "rw_transactions": 0, β
β β "server_query_statistics": [] β
β β } β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ$ sudo mariadbCREATE USER 'app_user'@'192.0.2.10' IDENTIFIED BY 'app_user_passwd';GRANT ALL ON test.* TO 'app_user'@'192.0.2.10';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.10 --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.10 --port 3308 \
--user app_user --passwordSELECT @@global.hostname, @@global.server_id;
+-------------------+--------------------+
| @@global.hostname | @@global.server_id |
+-------------------+--------------------+
| mcs2 | 2 |
+-------------------+--------------------+$ 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.10 --port 3307 \
--user app_user --passwordCREATE TABLE test.load_balancing_test (
id INT PRIMARY KEY AUTO_INCREMENT,
hostname VARCHAR(256),
server_id INT
);INSERT INTO test.load_balancing_test (hostname, server_id)
VALUES (@@global.hostname, @@global.server_id);SELECT * FROM test.load_balancing_test;+----+----------+-----------+
| id | hostname | server_id |
+----+----------+-----------+
| 1 | mcs1 | 1 |
| 2 | mcs1 | 1 |
| 3 | mcs1 | 1 |
+----+----------+-----------+$ 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.10 --port 3307 \
--user app_user --passwordSELECT @@global.hostname, @@global.server_id;+-------------------+--------------------+
| @@global.hostname | @@global.server_id |
+-------------------+--------------------+
| mcs2 | 2 |
+-------------------+--------------------+SELECT @@global.hostname, @@global.server_id;+-------------------+--------------------+
| @@global.hostname | @@global.server_id |
+-------------------+--------------------+
| mcs3 | 3 |
+-------------------+--------------------+