|Summary:||RFE+patch: MySQLd "init.d" startup script should rely on "/usr/bin/my_print_defaults" to get at options|
|Product:||Red Hat Enterprise Linux 4||Reporter:||David Tonhofer <bughunt>|
|Component:||mysql||Assignee:||Tom Lane <tgl>|
|Status:||CLOSED ERRATA||QA Contact:||David Lawrence <dkl>|
|Version:||4.0||CC:||byte, hhorak, monty|
|Fixed In Version:||RHSA-2008-0768||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2008-07-24 20:04:22 UTC||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
|Cloudforms Team:||---||Target Upstream Version:|
Description David Tonhofer 2007-03-24 20:59:16 UTC
Description of problem: This is of course just my "opionion", however it would seem advantageous to employ MySQL's packaged tools to get at MySQL options (which we have to know about before actually starting MySQL server) instead of additional sed-based extraction. MySQL option handling is already confusing enough - let's not add to it. In this spirit, I have attached a modified init.d script that gets options from my.cnf using "my_print_defaults", as is done in the MySQL "mysqld_safe" script. As a side note, "my_print_defaults" seems to miss the following features: 1) Set the path of my.cnf files to check. Currently this is compiled-in, which is not too flexible. Like this: my_print_defaults --search=/etc/my.cnf:/var/lib/mysql/my.cnf:$HOME/.my.cnf 2) Concatenate the options of several my.cnf sections in a single stream, in a specific order. Rendered necessary as the sections seem to change names depending on the version. Like this: my_print_defaults --sections=mysqld:mysql.server:mysqld_safe But that is another story. Version-Release number of selected component (if applicable): mysql-server-4.1.20-1.RHEL4.1 Also see bug #194596, which applies to Fedora though.
Comment 1 David Tonhofer 2007-03-24 20:59:16 UTC
Created attachment 150835 [details] The new init script and a diff relative to the old one
Comment 2 David Tonhofer 2007-03-24 22:42:55 UTC
Cough! I guess the script should not try to get data from section "[mysql.server]", even if such a section exists in the delivered "my.cnf"; mysqld_safe does not seem to read from it. Exclusively use section "[mysqld]" instead. And do not try to set "basedir" in "my.cnf" either or terrible things happen :-/ Instead let mysqld_safe find it by itself and set it to "--basedir=/usr"
Comment 3 Tom Lane 2007-04-08 23:34:01 UTC
*** Bug 235626 has been marked as a duplicate of this bug. ***
Comment 4 monty 2007-04-09 04:40:28 UTC
The "--defaults-file="/etc/my.cnf"" option should not be used in the start script. It prevents mysqld from reading the other option files. See comments in Bug 235626.
Comment 6 RHEL Product and Program Management 2008-02-01 19:09:18 UTC
This request was evaluated by Red Hat Product Management for inclusion, but this component is not scheduled to be updated in the current Red Hat Enterprise Linux release. If you would like this request to be reviewed for the next minor release, ask your support representative to set the next rhel-x.y flag to "?".
Comment 8 monty 2008-04-28 20:47:44 UTC
The rpm package is not well-behaved. It clobbers the /etc/init.d/mysqld file if it had been modified.
Comment 13 errata-xmlrpc 2008-07-24 20:04:22 UTC
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2008-0768.html