LindormTable supports access over the MySQL protocol, so you can connect with any MySQL-compatible client or driver. Before you build an application, review the defaults and constraints covered here: SSL/TLS behavior, authentication protocol selection, and the MySQL sub-protocol commands that LindormTable supports.
Prerequisites
Before you begin, make sure you have:
A Lindorm instance running LindormTable 2.6.0 or later. To check or upgrade your version, see Release notes of LindormTable and Upgrade the minor engine version of a Lindorm instance
The MySQL compatibility feature enabled. See Use a MySQL client to connect to and use LindormTable
The SQL syntax supported by LindormTable is not fully compatible with MySQL syntax. For details, see Lindorm SQL syntax.
SSL/TLS
SSL encryption is enabled by default for all MySQL connections to LindormTable. LindormTable supports TLS 1.2 only.
Switch to plaintext communication
If your application and Lindorm instance are in the same Virtual Private Cloud (VPC), you can disable SSL for better performance.
For MySQL JDBC V8.x, add sslMode=disabled to the connection URL to enable plaintext communication.
Handle TLS version compatibility issues
Some older MySQL clients use TLS 1.0 or 1.1, which LindormTable does not support. If you see connection errors related to the TLS protocol version, use one of these approaches:
Switch to plaintext communication. If the application and instance are in the same VPC, disable SSL as described above.
Set the TLS version to 1.2. For MySQL JDBC V5.1.44, configure the
enabledTLSProtocolsparameter to specify the TLS version.Upgrade your client. Use a client that supports MySQL 8.0 or later.
Authentication protocols
The authentication protocols available to a user depend on the LindormTable version that was running when that user was created — not the current version.
| LindormTable version when user was created | Supported authentication protocols |
|---|---|
| Earlier than 2.6.2 | caching_sha2_password only |
| 2.6.2 or later | caching_sha2_password and mysql_native_password |
Use caching_sha2_password when both protocols are available. It provides stronger security than mysql_native_password and is the default for MySQL 8.x clients.
Example: If you create a user when LindormTable is at version 2.5.4, then upgrade to 2.6.2 and create a second user, the first user supports only caching_sha2_password, while the second user supports both protocols.
MySQL protocol compatibility
LindormTable supports a subset of the MySQL wire protocol. The tables below show which sub-protocols and commands are supported.
Connection phase
| Sub-protocol | Supported | Notes |
|---|---|---|
| Handshake | Yes | Only HandshakeV10 is supported. |
| TLS | Yes | Only TLS 1.2 is supported. SSL is used by default. |
old_password | No | Used by MySQL 4.x and earlier clients. |
mysql_clear_password | Yes | Transmits plaintext passwords. Typically used with SSL. |
mysql_native_password | Yes | Default authentication for MySQL 5.x clients. |
caching_sha2_password | Yes | Default authentication for MySQL 8.x clients. Recommended. |
Command phase — text protocol
| Command | Supported | Notes |
|---|---|---|
COM_QUERY | Yes | Sends and executes SQL statements. |
Command phase — utility commands
| Command | Supported | Notes |
|---|---|---|
COM_QUIT | Yes | Disconnects from LindormTable. |
COM_INIT_DB | Yes | Switches the default database for the current connection. |
COM_PING | Yes | Checks connectivity between client and server. |
COM_DEBUG | No | — |
COM_CHANGE_USER | No | — |
COM_RESET_CONNECTION | No | — |
COM_SET_OPTION | No | — |
Command phase — prepared statements
| Command | Supported | Notes |
|---|---|---|
COM_STMT_PREPARE | Yes | Preprocesses a parameterized query. |
COM_STMT_EXECUTE | Yes | Binds parameters and executes a prepared statement. |
COM_STMT_CLOSE | Yes | Closes a prepared statement. |
COM_STMT_FETCH | No | — |
COM_STMT_SEND_LONG_DATA | No | Sends large object data before COM_STMT_EXECUTE. |
Replication protocol
| Protocol | Supported | Notes |
|---|---|---|
| Replication | No | MySQL binary log replication is not supported. |