This section describes the known limitations of InnoDB cluster. As InnoDB cluster uses Group Replication, you should also be aware of its limitations, see Section 18.9.2, “Group Replication Limitations”.
If a session type is not specified when creating the global session, MySQL Shell provides automatic protocol detection which attempts to first create a NodeSession and if that fails it tries to create a ClassicSession. With an InnoDB cluster that consists of three server instances, where there is one read-write port and two read-only ports, this can cause MySQL Shell to only connect to one of the read-only instances. Therefore it is recommended to always specify the session type when creating the global session.
When adding non-sandbox server instances (instances which you have configured manually rather than using
dba.deploySandboxInstance()) to a cluster, MySQL Shell is not able to persist any configuration changes in the instance's configuration file. This leads to one or both of the following scenarios:
The Group Replication configuration is not persisted in the instance's configuration file and upon restart the instance does not rejoin the cluster.
The instance is not valid for cluster usage. Although the instance can be verified with
dba.checkInstanceConfiguration(), and MySQL Shell makes the required configuration changes in order to make the instance ready for cluster usage, those changes are not persisted in the configuration file and so are lost once a restart happens.
ahappens, the instance does not rejoin the cluster after a restart.
balso happens, and you observe that the instance did not rejoin the cluster after a restart, you cannot use the recommended
dba.rebootClusterFromCompleteOutage()in this situation to get the cluster back online. This is because the instance loses any configuration changes made by MySQL Shell, and because they were not persisted, the instance reverts to the previous state before being configured for the cluster. This causes Group Replication to stop responding, and eventually the command times out.
To avoid this problem it is strongly recommended to use
dba.configureInstance()before adding instances to a cluster in order to persist the configuration changes.
The use of the
--defaults-extra-fileoption to specify an option file is not supported by InnoDB cluster server instances.
Attempting to use instances with a host name that resolves to an IP address which does not match a real network interface fails with an error that This instance reports its own address as
the hostname. This is not supported by the Group Replication communication layer. On Debian based instances this means instances cannot use addresses such as
user@localhostbecause localhost resolves to a non-existent IP (such as 127.0.1.1). This impacts on using a sandbox deployment, which usually uses local instances on a single machine.
A workaround is to configure the
report_hostsystem variable on each instance to use the actual IP address of your machine. Retrieve the IP of your machine and add
IP of your machine
my.cnffile of each instance. You need to ensure the instances are then restarted to make the change.