Menu:
x-plugin-system-monitoring:: Monitoring X Plugin
This section explains how to configure and monitor the X Plugin.
File: manual.info.tmp, Node: x-plugin-encrypted-connections, Next: x-plugin-options-variables, Prev: x-plugin, Up: x-plugin
This section explains how to configure X Plugin to use encrypted connections. For more background information, see *note encrypted-connections::.
To enable configuring support for encrypted connections, X Plugin has 'mysqlx_ssl_XXX' system variables, which can have different values from the 'ssl_XXX' system variables used with MySQL Server. For example, X Plugin can have SSL key, certificate, and certificate authority files that differ from those used for MySQL Server. These variables are described at note x-plugin-options-system-variables::. Similarly, X Plugin has its own 'Mysqlx_ssl_XXX' status variables that correspond to the MySQL Server encrypted-connection 'Ssl_XXX' status variables. See note x-plugin-status-variables::.
At initialization, X Plugin determines its configuration for encrypted connections as follows:
If all 'mysqlx_ssl_XXX' system variables have their default values, X Plugin configures encrypted connections using the values of the MySQL Server 'ssl_XXX' system variables.
If any 'mysqlx_ssl_XXX' variable has a nondefault value, X Plugin configures encrypted connections using the values of its own system variables. (This is the case if any 'mysqlx_ssl_XXX' system variable is set to a value different from its default.)
This means that, on a server with X Plugin enabled, you can choose to have MySQL Protocol and X Protocol connections share the same encryption configuration by setting only the 'ssl_XXX' variables, or have separate encryption configurations for MySQL Protocol and X Protocol connections by configuring the 'ssl_XXX' and 'mysqlx_ssl_XXX' variables separately.
To have MySQL Protocol and X Protocol connections use the same encryption configuration, set only the 'ssl_XXX' system variables in 'my.cnf':
[mysqld]
ssl_ca=ca.pem
ssl_cert=server-cert.pem
ssl_key=server-key.pem
To configure encryption separately for MySQL Protocol and X Protocol connections, set both the 'ssl_XXX' and 'mysqlx_ssl_XXX' system variables in 'my.cnf':
[mysqld]
ssl_ca=ca1.pem
ssl_cert=server-cert1.pem
ssl_key=server-key1.pem
mysqlx_ssl_ca=ca2.pem
mysqlx_ssl_cert=server-cert2.pem
mysqlx_ssl_key=server-key2.pem
For general information about configuring connection-encryption support, see *note using-encrypted-connections::. That discussion is written for MySQL Server, but the parameter names are similar for X Plugin. (The X Plugin 'mysqlx_ssl_XXX' system variable names correspond to the MySQL Server 'ssl_XXX' system variable names.)
The 'tls_version' system variable that determines the permitted TLS versions for MySQL Protocol connections also applies to X Protocol connections. The permitted TLS versions for both types of connections are therefore the same.
Encryption per connection is optional, but a specific user can be required to use encryption for X Protocol and MySQL Protocol connections by including an appropriate 'REQUIRE' clause in the note 'CREATE USER': create-user. statement that creates the user. For details, see note create-user::. Alternatively, to require all users to use encryption for X Protocol and MySQL Protocol connections, enable the 'require_secure_transport' system variable. For additional information, see *note mandatory-encrypted-connections::.
File: manual.info.tmp, Node: x-plugin-options-variables, Next: x-plugin-system-monitoring, Prev: x-plugin-encrypted-connections, Up: x-plugin
Menu:
x-plugin-status-variables:: X Plugin Status Variables
This section describes the command options and system variables that configure X Plugin, as well as the status variables available for monitoring purposes. If configuration values specified at startup time are incorrect, X Plugin could fail to initialize properly and the server does not load it. In this case, the server could also produce error messages for other X Plugin settings because it cannot recognize them.
File: manual.info.tmp, Node: x-plugin-option-variable-reference, Next: x-plugin-options-system-variables, Prev: x-plugin-options-variables, Up: x-plugin-options-variables
19.4.2.1 X Plugin Option and Variable Reference ...............................................
This table provides an overview of the command options, system variables, and status variables provided by X Plugin.
X Plugin Option and Variable Reference
Name Cmd-Line Option System Status Var Scope Dynamic File Var Var
mysqlx
Yes Yes
Mysqlx_address
Yes Global No
mysqlx_bind_address
Yes Yes Yes Global No
Mysqlx_bytes_received
Yes Both No
Mysqlx_bytes_sent
Yes Both No
mysqlx_connect_timeout
Yes Yes Yes Global Yes
Mysqlx_connection_accept_errors
Yes Both No
Mysqlx_connection_errors
Yes Both No
Mysqlx_connections_accepted
Yes Global No
Mysqlx_connections_closed
Yes Global No
Mysqlx_connections_rejected
Yes Global No
Mysqlx_crud_create_view
Yes Both No
Mysqlx_crud_delete
Yes Both No
Mysqlx_crud_drop_view
Yes Both No
Mysqlx_crud_find
Yes Both No
Mysqlx_crud_insert
Yes Both No
Mysqlx_crud_modify_view
Yes Both No
Mysqlx_crud_update
Yes Both No
Mysqlx_errors_sent
Yes Both No
Mysqlx_errors_unknown_message_type
Yes Both No
Mysqlx_expect_close
Yes Both No
Mysqlx_expect_open
Yes Both No
mysqlx_idle_worker_thread_timeout
Yes Yes Yes Global Yes
Mysqlx_init_error
Yes Both No
mysqlx_max_allowed_packet
Yes Yes Yes Global Yes
mysqlx_max_connections
Yes Yes Yes Global Yes
mysqlx_min_worker_threads
Yes Yes Yes Global Yes
Mysqlx_notice_other_sent
Yes Both No
Mysqlx_notice_warning_sent
Yes Both No
Mysqlx_port
Yes Global No
mysqlx_port
Yes Yes Yes Global No
mysqlx_port_open_timeout
Yes Yes Yes Global No
Mysqlx_rows_sent
Yes Both No
Mysqlx_sessions
Yes Global No
Mysqlx_sessions_accepted
Yes Global No
Mysqlx_sessions_closed
Yes Global No
Mysqlx_sessions_fatal_error
Yes Global No
Mysqlx_sessions_killed
Yes Global No
Mysqlx_sessions_rejected
Yes Global No
Mysqlx_socket
Yes Global No
mysqlx_socket
Yes Yes Yes Global No
Mysqlx_ssl_accept_renegotiates
Yes Global No
Mysqlx_ssl_accepts
Yes Global No
Mysqlx_ssl_active
Yes Both No
mysqlx_ssl_ca
Yes Yes Yes Global No
mysqlx_ssl_capath
Yes Yes Yes Global No
mysqlx_ssl_cert
Yes Yes Yes Global No
Mysqlx_ssl_cipher
Yes Both No
mysqlx_ssl_cipher
Yes Yes Yes Global No
Mysqlx_ssl_cipher_list
Yes Both No
mysqlx_ssl_crl
Yes Yes Yes Global No
mysqlx_ssl_crlpath
Yes Yes Yes Global No
Mysqlx_ssl_ctx_verify_depth
Yes Both No
Mysqlx_ssl_ctx_verify_mode
Yes Both No
Mysqlx_ssl_finished_accepts
Yes Global No
mysqlx_ssl_key
Yes Yes Yes Global No
Mysqlx_ssl_server_not_after
Yes Global No
Mysqlx_ssl_server_not_before
Yes Global No
Mysqlx_ssl_verify_depth
Yes Global No
Mysqlx_ssl_verify_mode
Yes Global No
Mysqlx_ssl_version
Yes Both No
Mysqlx_stmt_create_collection
Yes Both No
Mysqlx_stmt_create_collection_index
Yes Both No
Mysqlx_stmt_disable_notices
Yes Both No
Mysqlx_stmt_drop_collection
Yes Both No
Mysqlx_stmt_drop_collection_index
Yes Both No
Mysqlx_stmt_enable_notices
Yes Both No
Mysqlx_stmt_ensure_collection
Yes Both No
Mysqlx_stmt_execute_mysqlx
Yes Both No
Mysqlx_stmt_execute_sql
Yes Both No
Mysqlx_stmt_execute_xplugin
Yes Both No
Mysqlx_stmt_kill_client
Yes Both No
Mysqlx_stmt_list_clients
Yes Both No
Mysqlx_stmt_list_notices
Yes Both No
Mysqlx_stmt_list_objects
Yes Both No
Mysqlx_stmt_ping
Yes Both No
Mysqlx_worker_threads
Yes Global No
Mysqlx_worker_threads_active
Yes Global No
File: manual.info.tmp, Node: x-plugin-options-system-variables, Next: x-plugin-status-variables, Prev: x-plugin-option-variable-reference, Up: x-plugin-options-variables
19.4.2.2 X Plugin Options and System Variables ..............................................
To control activation of X Plugin, use this option:
'--mysqlx[=VALUE]'
Command-Line Format
'--mysqlx[=value]'
Introduced
5.7.12
Type
Enumeration
Default Value
'ON'
Valid Values
'ON' 'OFF' 'FORCE' 'FORCE_PLUS_PERMANENT'
This option controls how the server loads X Plugin at startup. It is available only if the plugin has been previously registered with *note 'INSTALL PLUGIN': install-plugin. or is loaded with '--plugin-load' or '--plugin-load-add'.
The option value should be one of those available for plugin-loading options, as described in *note plugin-loading::. For example, '--mysqlx=FORCE_PLUS_PERMANENT' tells the server to load the plugin and prevent it from being removed while the server is running.
If X Plugin is enabled, it exposes several system variables that permit control over its operation:
'mysqlx_bind_address'
Command-Line Format
'--mysqlx-bind-address=addr'
Introduced
5.7.17
System Variable
'mysqlx_bind_address'
Scope
Global
Dynamic
No
Type
String
Default Value
'*'
The network address on which X Plugin listens for TCP/IP connections. This variable is not dynamic and can be configured only at startup. This is the X Plugin equivalent of the 'bind_address' system variable; see that variable description for more information.
'mysqlx_bind_address' accepts a single address value, which may specify a single non-wildcard IP address or host name, or one of the wildcard address formats that permit listening on multiple network interfaces ('*', '0.0.0.0', or '::').
An IP address can be specified as an IPv4 or IPv6 address. If the value is a host name, X Plugin resolves the name to an IP address and binds to that address. If a host name resolves to multiple IP addresses, X Plugin uses the first IPv4 address if there are any, or the first IPv6 address otherwise.
X Plugin treats different types of addresses as follows:
* If the address is '*', X Plugin accepts TCP/IP connections on
all server host IPv4 interfaces, and, if the server host
supports IPv6, on all IPv6 interfaces. Use this address to
permit both IPv4 and IPv6 connections for X Plugin. This
value is the default.
* If the address is '0.0.0.0', X Plugin accepts TCP/IP
connections on all server host IPv4 interfaces.
* If the address is '::', X Plugin accepts TCP/IP connections on
all server host IPv4 and IPv6 interfaces.
* If the address is an IPv4-mapped address, X Plugin accepts
TCP/IP connections for that address, in either IPv4 or IPv6
format. For example, if X Plugin is bound to
'::ffff:127.0.0.1', a client such as MySQL Shell can connect
using '--host=127.0.0.1' or '--host=::ffff:127.0.0.1'.
* If the address is a 'regular' IPv4 or IPv6 address (such as
'127.0.0.1' or '::1'), X Plugin accepts TCP/IP connections
only for that IPv4 or IPv6 address.
If binding to the address fails, X Plugin produces an error and the server does not load it.
'mysqlx_connect_timeout'
Command-Line Format
'--mysqlx-connect-timeout=#'
Introduced
5.7.12
System Variable
'mysqlx_connect_timeout'
Scope
Global
Dynamic
Yes
Type
Integer
Default Value
'30'
Minimum Value
'1'
Maximum Value
'1000000000'
Unit
seconds
The number of seconds X Plugin waits for the first packet to be received from newly connected clients. This is the X Plugin equivalent of 'connect_timeout'; see that variable description for more information.
'mysqlx_idle_worker_thread_timeout'
Command-Line Format
'--mysqlx-idle-worker-thread-timeout=#'
Introduced
5.7.12
System Variable
'mysqlx_idle_worker_thread_timeout'
Scope
Global
Dynamic
Yes
Type
Integer
Default Value
'60'
Minimum Value
'0'
Maximum Value
'3600'
Unit
seconds
The number of seconds after which idle worker threads are terminated.
'mysqlx_max_allowed_packet'
Command-Line Format
'--mysqlx-max-allowed-packet=#'
Introduced
5.7.12
System Variable
'mysqlx_max_allowed_packet'
Scope
Global
Dynamic
Yes
Type
Integer
Default Value
'67108864'
Minimum Value
'512'
Maximum Value
'1073741824'
Unit
bytes
The maximum size of network packets that can be received by X Plugin. This is the X Plugin equivalent of 'max_allowed_packet'; see that variable description for more information.
'mysqlx_max_connections'
Command-Line Format
'--mysqlx-max-connections=#'
Introduced
5.7.12
System Variable
'mysqlx_max_connections'
Scope
Global
Dynamic
Yes
Type
Integer
Default Value
'100'
Minimum Value
'1'
Maximum Value
'65535'
The maximum number of concurrent client connections X Plugin can accept. This is the X Plugin equivalent of 'max_connections'; see that variable description for more information.
For modifications to this variable, if the new value is smaller than the current number of connections, the new limit is taken into account only for new connections.
'mysqlx_min_worker_threads'
Command-Line Format
'--mysqlx-min-worker-threads=#'
Introduced
5.7.12
System Variable
'mysqlx_min_worker_threads'
Scope
Global
Dynamic
Yes
Type
Integer
Default Value
'2'
Minimum Value
'1'
Maximum Value
'100'
The minimum number of worker threads used by X Plugin for handling client requests.
'mysqlx_port'
Command-Line Format
'--mysqlx-port=port_num'
Introduced
5.7.12
System Variable
'mysqlx_port'
Scope
Global
Dynamic
No
Type
Integer
Default Value
'33060'
Minimum Value
'1'
Maximum Value
'65535'
The network port on which X Plugin listens for TCP/IP connections. This is the X Plugin equivalent of 'port'; see that variable description for more information.
'mysqlx_port_open_timeout'
Command-Line Format
'--mysqlx-port-open-timeout=#'
Introduced
5.7.17
System Variable
'mysqlx_port_open_timeout'
Scope
Global
Dynamic
No
Type
Integer
Default Value
'0'
Minimum Value
'0'
Maximum Value
'120'
Unit
seconds
The number of seconds X Plugin waits for a TCP/IP port to become free.
'mysqlx_socket'
Command-Line Format
'--mysqlx-socket=file_name'
Introduced
5.7.15
System Variable
'mysqlx_socket'
Scope
Global
Dynamic
No
Type
String
Default Value
'/tmp/mysqlx.sock'
The path to a Unix socket file which X Plugin uses for connections. This setting is only used by MySQL Server when running on Unix operating systems. Clients can use this socket to connect to MySQL Server using X Plugin.
The default 'mysqlx_socket' path and file name is based on the default path and file name for the main socket file for MySQL Server, with the addition of an 'x' appended to the file name. The default path and file name for the main socket file is '/tmp/mysql.sock', therefore the default path and file name for the X Plugin socket file is '/tmp/mysqlx.sock'.
If you specify an alternative path and file name for the main socket file at server startup using the 'socket' system variable, this does not affect the default for the X Plugin socket file. In this situation, if you want to store both sockets at a single path, you must set the 'mysqlx_socket' system variable as well. For example in a configuration file:
socket=/home/sockets/mysqld/mysql.sock
mysqlx_socket=/home/sockets/xplugin/xplugin.sock
If you change the default path and file name for the main socket file at compile time using the 'MYSQL_UNIX_ADDR' compile option, this does affect the default for the X Plugin socket file, which is formed by appending an 'x' to the 'MYSQL_UNIX_ADDR' file name. If you want to set a different default for the X Plugin socket file at compile time, use the 'MYSQLX_UNIX_ADDR' compile option.
The 'MYSQLX_UNIX_PORT' environment variable can also be used to set a default for the X Plugin socket file at server startup (see *note environment-variables::). If you set this environment variable, it overrides the compiled 'MYSQLX_UNIX_ADDR' value, but is overridden by the 'mysqlx_socket' value.
'mysqlx_ssl_ca'
Command-Line Format
'--mysqlx-ssl-ca=file_name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_ca'
Scope
Global
Dynamic
No
Type
File name
Default Value
'NULL'
The 'mysqlx_ssl_ca' system variable is like 'ssl_ca', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
'mysqlx_ssl_capath'
Command-Line Format
'--mysqlx-ssl-capath=dir_name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_capath'
Scope
Global
Dynamic
No
Type
Directory name
Default Value
'NULL'
The 'mysqlx_ssl_capath' system variable is like 'ssl_capath', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
'mysqlx_ssl_cert'
Command-Line Format
'--mysqlx-ssl-cert=file_name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_cert'
Scope
Global
Dynamic
No
Type
File name
Default Value
'NULL'
The 'mysqlx_ssl_cert' system variable is like 'ssl_cert', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
'mysqlx_ssl_cipher'
Command-Line Format
'--mysqlx-ssl-cipher=name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_cipher'
Scope
Global
Dynamic
No
Type
String
Default Value
'NULL'
The 'mysqlx_ssl_cipher' system variable is like 'ssl_cipher', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
'mysqlx_ssl_crl'
Command-Line Format
'--mysqlx-ssl-crl=file_name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_crl'
Scope
Global
Dynamic
No
Type
File name
Default Value
'NULL'
The 'mysqlx_ssl_crl' system variable is like 'ssl_crl', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
'mysqlx_ssl_crlpath'
Command-Line Format
'--mysqlx-ssl-crlpath=dir_name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_crlpath'
Scope
Global
Dynamic
No
Type
Directory name
Default Value
'NULL'
The 'mysqlx_ssl_crlpath' system variable is like 'ssl_crlpath', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
'mysqlx_ssl_key'
Command-Line Format
'--mysqlx-ssl-key=file_name'
Introduced
5.7.12
System Variable
'mysqlx_ssl_key'
Scope
Global
Dynamic
No
Type
File name
Default Value
'NULL'
The 'mysqlx_ssl_key' system variable is like 'ssl_key', except that it applies to X Plugin rather than the MySQL Server main connection interface. For information about configuring encryption support for X Plugin, see *note x-plugin-encrypted-connections::.
File: manual.info.tmp, Node: x-plugin-status-variables, Prev: x-plugin-options-system-variables, Up: x-plugin-options-variables
19.4.2.3 X Plugin Status Variables ..................................
The X Plugin status variables have the following meanings.
'Mysqlx_address'
The network address which X Plugin is bound to. If the bind has failed, or if the 'skip_networking' option has been used, the value shows 'UNDEFINED'.
'Mysqlx_bytes_received'
The number of bytes received through the network.
'Mysqlx_bytes_sent'
The number of bytes sent through the network.
'Mysqlx_connection_accept_errors'
The number of connections which have caused accept errors.
'Mysqlx_connection_errors'
The number of connections which have caused errors.
'Mysqlx_connections_accepted'
The number of connections which have been accepted.
'Mysqlx_connections_closed'
The number of connections which have been closed.
'Mysqlx_connections_rejected'
The number of connections which have been rejected.
'Mysqlx_crud_create_view'
The number of create view requests received.
'Mysqlx_crud_delete'
The number of delete requests received.
'Mysqlx_crud_drop_view'
The number of drop view requests received.
'Mysqlx_crud_find'
The number of find requests received.
'Mysqlx_crud_insert'
The number of insert requests received.
'Mysqlx_crud_modify_view'
The number of modify view requests received.
'Mysqlx_crud_update'
The number of update requests received.
'Mysqlx_errors_sent'
The number of errors sent to clients.
'Mysqlx_errors_unknown_message_type'
The number of unknown message types that have been received.
'Mysqlx_expect_close'
The number of expectation blocks closed.
'Mysqlx_expect_open'
The number of expectation blocks opened.
'Mysqlx_init_error'
The number of errors during initialisation.
'Mysqlx_notice_other_sent'
The number of other types of notices sent back to clients.
'Mysqlx_notice_warning_sent'
The number of warning notices sent back to clients.
'Mysqlx_port'
The TCP port which X Plugin is listening to. If a network bind has failed, or if the 'skip_networking' system variable is enabled, the value shows 'UNDEFINED'.
'Mysqlx_rows_sent'
The number of rows sent back to clients.
'Mysqlx_sessions'
The number of sessions that have been opened.
'Mysqlx_sessions_accepted'
The number of session attempts which have been accepted.
'Mysqlx_sessions_closed'
The number of sessions that have been closed.
'Mysqlx_sessions_fatal_error'
The number of sessions that have closed with a fatal error.
'Mysqlx_sessions_killed'
The number of sessions which have been killed.
'Mysqlx_sessions_rejected'
The number of session attempts which have been rejected.
'Mysqlx_socket'
The Unix socket which X Plugin is listening to.
'Mysqlx_ssl_accept_renegotiates'
The number of negotiations needed to establish the connection.
'Mysqlx_ssl_accepts'
The number of accepted SSL connections.
'Mysqlx_ssl_active'
If SSL is active.
'Mysqlx_ssl_cipher'
The current SSL cipher (empty for non-SSL connections).
'Mysqlx_ssl_cipher_list'
A list of possible SSL ciphers (empty for non-SSL connections).
'Mysqlx_ssl_ctx_verify_depth'
The certificate verification depth limit currently set in ctx.
'Mysqlx_ssl_ctx_verify_mode'
The certificate verification mode currently set in ctx.
'Mysqlx_ssl_finished_accepts'
The number of successful SSL connections to the server.
'Mysqlx_ssl_server_not_after'
The last date for which the SSL certificate is valid.
'Mysqlx_ssl_server_not_before'
The first date for which the SSL certificate is valid.
'Mysqlx_ssl_verify_depth'
The certificate verification depth for SSL connections.
'Mysqlx_ssl_verify_mode'
The certificate verification mode for SSL connections.
'Mysqlx_ssl_version'
The name of the protocol used for SSL connections.
'Mysqlx_stmt_create_collection'
The number of create collection statements received.
'Mysqlx_stmt_create_collection_index'
The number of create collection index statements received.
'Mysqlx_stmt_disable_notices'
The number of disable notice statements received.
'Mysqlx_stmt_drop_collection'
The number of drop collection statements received.
'Mysqlx_stmt_drop_collection_index'
The number of drop collection index statements received.
'Mysqlx_stmt_enable_notices'
The number of enable notice statements received.
'Mysqlx_stmt_ensure_collection'
The number of ensure collection statements received.
'Mysqlx_stmt_execute_mysqlx'
The number of StmtExecute messages received with namespace set to 'mysqlx'.
'Mysqlx_stmt_execute_sql'
The number of StmtExecute requests received for the SQL namespace.
'Mysqlx_stmt_execute_xplugin'
The number of StmtExecute requests received for the X Plugin namespace.
'Mysqlx_stmt_kill_client'
The number of kill client statements received.
'Mysqlx_stmt_list_clients'
The number of list client statements received.
'Mysqlx_stmt_list_notices'
The number of list notice statements received.
'Mysqlx_stmt_list_objects'
The number of list object statements received.
'Mysqlx_stmt_ping'
The number of ping statements received.
'Mysqlx_worker_threads'
The number of worker threads available.
'Mysqlx_worker_threads_active'
The number of worker threads currently used.
File: manual.info.tmp, Node: x-plugin-system-monitoring, Prev: x-plugin-options-variables, Up: x-plugin
To monitor X Plugin, use the status variables that it exposes. See *note x-plugin-status-variables::.
File: manual.info.tmp, Node: mysql-innodb-cluster-introduction, Next: mysql-cluster, Prev: document-store, Up: Top
20 InnoDB Cluster *****************
This chapter introduces MySQL InnoDB Cluster, which combines MySQL technologies to enable you to deploy and administer a complete integrated high availability solution for MySQL. This content is a high-level overview of InnoDB Cluster, for full documentation, see MySQL InnoDB Cluster (https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-innodb-cluster.html).
Important:
InnoDB Cluster does not provide support for MySQL NDB Cluster. For more information about MySQL NDB Cluster, see note mysql-cluster:: and note mysql-cluster-compared::.
An InnoDB Cluster consists of at least three MySQL Server instances, and it provides high-availability and scaling features. InnoDB Cluster uses the following MySQL technologies:
MySQL Shell (https://dev.mysql.com/doc/mysql-shell/8.0/en/), which is an advanced client and code editor for MySQL.
MySQL Server, and *note Group Replication: group-replication, which enables a set of MySQL instances to provide high-availability. InnoDB Cluster provides an alternative, easy to use programmatic way to work with Group Replication.
MySQL Router (https://dev.mysql.com/doc/mysql-router/8.0/en/), a lightweight middleware that provides transparent routing between your application and InnoDB Cluster.
The following diagram shows an overview of how these technologies work together:
FIGURE GOES HERE: InnoDB Cluster overview
Being built on MySQL note Group Replication: group-replication, provides features such as automatic membership management, fault tolerance, automatic failover, and so on. An InnoDB Cluster usually runs in a single-primary mode, with one primary instance (read-write) and multiple secondary instances (read-only). Advanced users can also take advantage of a note multi-primary: group-replication-multi-primary-mode. mode, where all instances are primaries.
You work with InnoDB Cluster using the AdminAPI (https://dev.mysql.com/doc/mysql-shell/8.0/en/admin-api-overview.html), provided as part of MySQL Shell. AdminAPI is available in JavaScript and Python, and is well suited to scripting and automation of deployments of MySQL to achieve high-availability and scalability. By using MySQL Shell's AdminAPI, you can avoid the need to configure many instances manually. Instead, AdminAPI provides an effective modern interface to sets of MySQL instances and enables you to provision, administer, and monitor your deployment from one central tool.
To get started with InnoDB Cluster you need to download (https://dev.mysql.com/downloads/shell/) and install (https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html) MySQL Shell. You need some hosts with MySQL Server instances *note installed: installing, and you can also install (https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-installation.html) MySQL Router.
InnoDB Cluster supports MySQL Clone (https://dev.mysql.com/doc/refman/8.0/en/clone-plugin.html), which enables you to provision instances simply. In the past, to provision a new instance before it joins a set of MySQL instances you would need to somehow manually transfer the transactions to the joining instance. This could involve making file copies, manually copying them, and so on. Using InnoDB Cluster, you can simply add an instance (https://dev.mysql.com/doc/mysql-shell/8.0/en/add-instances-cluster.html) to the cluster and it is automatically provisioned.
Similarly, InnoDB Cluster is tightly integrated with MySQL Router (https://dev.mysql.com/doc/mysql-router/8.0/en/), and you can use AdminAPI to work with (https://dev.mysql.com/doc/mysql-shell/8.0/en/registered-routers.html) them together. MySQL Router can automatically configure itself based on an InnoDB Cluster, in a process called bootstrapping (https://dev.mysql.com/doc/mysql-shell/8.0/en/admin-api-bootstrapping-router.html), which removes the need for you to configure routing manually. MySQL Router then transparently connects client applications to the InnoDB Cluster, providing routing and load-balancing for client connections. This integration also enables you to administer some aspects of a MySQL Router bootstrapped against an InnoDB Cluster using AdminAPI. InnoDB Cluster status information includes details about MySQL Routers bootstrapped against the cluster. Operations enable you to create MySQL Router users (https://dev.mysql.com/doc/mysql-shell/8.0/en/configuring-router-user.html) at the cluster level, to work with the MySQL Routers bootstrapped against the cluster, and so on.
AdminAPI is compatible with instances running MySQL 5.7, but with a reduced feature set. For more information, see Using Instances Running MySQL 5.7 (https://dev.mysql.com/doc/mysql-shell/8.0/en/using-version-5-7.html). For the best experience using AdminAPI and InnoDB Cluster *note upgrade: upgrading. to MySQL 8.0.
For more information on these technologies, see the user documentation linked in the descriptions. In addition to this user documentation, there is developer documentation for all AdminAPI methods in the MySQL Shell JavaScript API Reference or MySQL Shell Python API Reference, available from Connectors and APIs (https://dev.mysql.com/doc/index-connectors.html).
File: manual.info.tmp, Node: mysql-cluster, Next: partitioning, Prev: mysql-innodb-cluster-introduction, Up: Top
21 MySQL NDB Cluster 7.5 and NDB Cluster 7.6 ********************************************
Menu:
mysql-cluster-news:: NDB Cluster Release Notes
This chapter provides information about MySQL NDB Cluster, a high-availability, high-redundancy version of MySQL adapted for the distributed computing environment which enables running several computers with MySQL servers and other software in a cluster. This chapter also provides information specific to NDB Cluster 7.5 releases through 5.7.44-ndb-7.5.36 and NDB Cluster 7.6 releases through 5.7.44-ndb-7.6.34, both of which are previous General Availability (GA) releases still supported in production. The latest available releases of these are 5.7.44-ndb-7.5.36 and 5.7.44-ndb-7.6.33, respectively. A more recent NDB Cluster stable release series uses version 8.0 of the note 'NDB': mysql-cluster. storage engine (also known as note 'NDBCLUSTER': mysql-cluster.). NDB Cluster 8.0, now available as a General Availability (GA) release beginning with version 8.0.19, incorporates version 8.0 of the 'NDB' storage engine; see MySQL NDB Cluster 8.0 (https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster.html), for more information about NDB 8.0. NDB Cluster 8.4 (NDB 8.4.5), based on version 8.4 of the NDB storage engine, is also available as an LTS release. See What is New in MySQL NDB Cluster 8.4 (https://dev.mysql.com/doc/refman/8.4/en/mysql-cluster-what-is-new.html), for information about differences in NDB 8.4 as compared to earlier releases. Previous GA releases NDB Cluster 7.4 and NDB Cluster 7.3 incorporated 'NDB' versions 7.4 and 7.3, respectively. NDB 7.4 and older release series are no longer supported or maintained. Both NDB 8.0 and NDB 8.1 are supported in production, and are recommended for new deployments.
File: manual.info.tmp, Node: mysql-cluster-general-info, Next: mysql-cluster-overview, Prev: mysql-cluster, Up: mysql-cluster