Bug #42137 sql_mode should include NO_ENGINE_SUBSTITUTION
Submitted: 15 Jan 2009 17:04 Modified: 28 Jan 2009 17:46
Reporter: Mark Matthews Email Updates:
Status: Closed Impact on me:
Category:MySQL Enterprise Monitor: Server Severity:S2 (Serious)
Version: OS:Any
Assigned to: Mark Matthews CPU Architecture:Any

[15 Jan 2009 17:04] Mark Matthews
We should configure our JDBC connections to set sql_mode to include NO_ENGINE_SUBSTITUTION, so that if a storage engine we depend on is disabled (which happens when customers mistakenly point the service manager to a mysqld instance that isn't the one we ship with, or have innodb disabled), our DDL fails, not to mention the application's behavior changes.

How to repeat:
By inspection.
[21 Jan 2009 4:55] Mark Matthews
Fixed in trunk, and merged to branches/2.0 for next build.
[23 Jan 2009 16:52] Marcos Palacios
Verified fixed in service manager build

The way to test it is to install the service manager, and point it to a mysqld that has --skip-innodb in my.cnf, and see that it refuses to start up.
[28 Jan 2009 17:46] Tony Bedford
An entry was added to the 2.0.4 changelog:

The Service Manager's JDBC connections did not have sql_mode set to include NO_ENGINE_SUBSTITUTION. This resulted in the failure of Dynamic Data Logging if the Service Manager was inadvertently pointed to an incorrect mysqld instance.
[5 Feb 2009 10:56] Tony Bedford
Dynamic Data Logging -> Data Definition Language