Problem

When you go to "Manage Servers" section in the Admin UI, upon completion of "Join Cluster" form and clicking "Save", you get a brief error "Unable to join cluster" with the popup form staying open for inputs.

Solution

This section contains possible causes, symptoms and solutions to check and resolve before going back to try to Join the cluster again.

Problem 1: PHP timeout causes the join cluster flow to break and fail.

How to check this

Review PHP error log, look for a fresh entry such as "PHP Fatal error: Maximum execution time of 30 seconds exceeded".

How to fix this problem

Use the Admin UI to look for the directives 'max_execution_time' and 'max_input_time' under PHP / Extensions section. Check the current value and raise the number of seconds allowing a PHP script to complete execution. Once you raise the values to the desired amount, click "Save" at the top left, and follow up by Restart action in the top left actions panel.

Problem 2: Zend Server Daemon (ZSD) fails to establish a working connection to MySQL server.

How to check this

Review zsd.log, look for a fresh entry such as "Unable to connect to cluster database: Failed to allocate QMYSQL connection, reason: Can't initialize character set unknown (path: compiled_in) QMYSQL: Unable to connect".

How to fix this problem

You will need to locate, backup and edit your "my.ini" (MySQL server configuration) and add specific character set entries for the client / server to connect. This must be verified by your DBA (Database Admin) so you will not break any other working application which is dependent on the MySQL instance used for Zend Server cluster backend.

If you do not know the location of the "my.ini" file, check the command line (Linux / Mac) or Service properties (Windows) under the command which starts the service.

a Simple "recipe" to allow the client and server character set UTF8, gathered from 3 sections in the configuration file, should be like this:

[client]
### added for Zend Server to connect to cluster DB default-character-set = utf8mb4 ###
[mysql] ### added for Zend Server to connect to cluster DB
default-character-set = utf8mb4 ###
[mysqld] ### added for Zend Server to connect to cluster DB
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
###

After the configuration is modified and double checked for duplicates (look for the same directives throughout the "my.ini" file), save "my.ini" and restart MySQL / MariaDB service. Last check would be to verify MySQL is up and running and you can connect to it using MySQL client with the same credentials you apply in Zend Server "join cluster" form.

Online Zend Server reference - Joining a Cluster