Description:
The plist file (/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist) contains hard coded configuration that one often like to change in a global my.cnf file, for example in /etc/mysql/my.cnf But the Preference pane start/stop method lets the plist information override the global my.cnf configuration. So when using a global my.cnf you have to remove corresponding configuration from the plist file for example basedir, datadir, log-error and pid-file
Is that really intentional? Why hard code configuration in the plist file and use that before a global my.cnf when there is a my_print_defaults and specified paths to global my.cnf files?
The solution for now is to remove configuation from the plist file and put it in /etc/mysql/my.cnf with my preferred values. I consider this a bug or at least a gotcha that should be documented
How to repeat:
Install MySQL 5.6 or 5.7 on MacOSX (i run Yosemite 10.10.5 now but have seen this before)
Create a /etc/my.cnf and put configuration in it, for example: log_error = /var/log/mysql/error.log
Start MySQL via Preference Pane
Check your configuration change in my.cnf, for example: SELECT @@log_error;
Suggested fix:
My feature request is that the preference pane should use configuration in the global my.cnf in first hand and not override this with configuration from the plist file. Perhaps a /etc/my.cnf should be created during installation?