MySQL Replication is compatible with JavaScript stored programs, provided that the MLE component is installed on every server in the topology, due to the following issues:
A replica without the component installed accepts
CREATE FUNCTION
andCREATE PROCEDURE
statements containing JavaScript code from the source, but the replica cannot execute the stored programs thus created.A JavaScript stored program created on a server without the component installed is not checked for validity.
This means that, when a CREATE FUNCTION
or
CREATE PROCEDURE
statement which contains
invalid JavaScript code is executed on a server without the MLE
component installed, the statement always succeeds, and thus is
replicated. If the replica which has the MLE component
installed, an error is raised when the replica attempts to
execute it, leading to a break in replication.
For installing (or uninstalling) the MLE component on MySQL servers used in replication, it recommended that you stop replication, install (or uninstall) the component on every server in the topology, and only then allow replication to resume. Replicating between servers in a mixed setting (that is, in which some servers have the MLE component installed and some do not) is not supported for the reasons stated in the previous paragraph.
For more information about JavaScript stored programs in MySQL, see Section 27.3, “JavaScript Stored Programs”. For information about the MLE component, see Section 7.5.8, “Multilingual Engine Component (MLE)”.