Related Documentation Download this Manual
PDF (US Ltr) - 37.7Mb
PDF (A4) - 37.7Mb
PDF (RPM) - 37.0Mb
HTML Download (TGZ) - 10.2Mb
HTML Download (Zip) - 10.3Mb
HTML Download (RPM) - 8.9Mb
Man Pages (TGZ) - 214.7Kb
Man Pages (Zip) - 327.7Kb
Info (Gzip) - 3.4Mb
Info (Zip) - 3.4Mb
Excerpts from this Manual

MySQL 5.7 Reference Manual  /  InnoDB Cluster  /  Known Limitations

20.8 Known Limitations

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 17.7.2, “Group Replication Limitations”.

  • The formatting of results which contain multi-byte characters sometimes do not have correctly aligned columns. Similarly, non-standard character sets are being corrupted in results.

  • AdminAPI does not support Unix socket connections. MySQL Shell currently does not prevent you from attempting to use socket connections to a cluster, and attempting to use a socket connection to a cluster can cause unexpected results.

  • The MySQL Shell help describes an invalid URI:

    USER[:PASS]@::SOCKET[/DB].

    This is invalid because the @ symbol can not be present if no user information is provided.

  • Whenever MySQL Shell is started using a connection command parameter such as --uri, --user, --host, --port, and so on, MySQL Shell attempts to create a connection using default values for parameters that have not been specified. If you use the --socket command parameter MySQL Shell should attempt to create a socket connection using the default values for host and user, but it does not.

  • 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:

    1. The Group Replication configuration is not persisted in the instance's configuration file and upon restart the instance does not rejoin the cluster.

    2. 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.

    If only 1 happens, the instance does not rejoin the cluster after a restart.

    If 2 also 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.configureLocalInstance() before adding instances to a cluster in order to persist the configuration changes.

  • When using dba.configureLocalInstance() or dba.deploySandboxInstance(), server instances are configured with random 32-bit unsigned integers for the server-id system variable. The value of server-id is also used as the default for the auto_increment_offset system variable, which determines the starting point for AUTO_INCREMENT. Group Replication has its own increment mechanism and uses group_replication_auto_increment_increment which defaults to 7 (the maximum group size). This is used to configure the value of auto_increment_increment. This can result in server instances configured with values such as:

    auto_increment_offset = 214748366 (max 32-bit integer value - 1)
    auto_increment_increment = 7

    When the next record is inserted: 214748366 + 7 this can result in overflow. Similarly a collision can occur between numbers generated by different servers in the same cluster.

  • Using MySQL server instances configured with the validate_password plugin and password policy set to STRONG causes InnoDB cluster createCluster() and MySQL Router bootstrap operations to fail. This is because the internal user required for access to the server instance can not be validated.

  • The MySQL Router --bootstrap command line option does not accept IPv6 addresses.

  • The commercial version of MySQL Router does not have the correct setting for AppArmor. A work around is to edit the AppArmor profile configuration file /etc/apparmor.d/usr.sbin.mysqlrouter and modify the line containing /usr/sbin/mysqld to use the path to MySQL Router, for example /usr/sbin/mysqlrouter.


User Comments
Sign Up Login You must be logged in to post a comment.