Bug #32679 mysqld_safe looks for errmsg.sys in wrong path
| Submitted: | 23 Nov 2007 19:53 | Modified: | 25 Feb 2008 19:35 |
|---|---|---|---|
| Reporter: | Matthew Montgomery | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Installing | Severity: | S2 (Serious) |
| Version: | 6.0.3 | OS: | Linux |
| Assigned to: | Timothy Smith | CPU Architecture: | Any |
[23 Nov 2007 19:53]
Matthew Montgomery
[29 Nov 2007 12:07]
Daniel Fischer
Bug#32163 has been marked as a duplicate of this bug.
[1 Dec 2007 0:24]
Timothy Smith
I'm pretty sure that something like this diff will work (untested):
===== scripts/make_binary_distribution.sh 1.162 vs edited =====
--- 1.162/scripts/make_binary_distribution.sh 2007-10-01 10:40:40 -06:00
+++ edited/scripts/make_binary_distribution.sh 2007-11-30 17:14:23 -07:00
@@ -23,7 +23,8 @@
# Note that the structure created by this script is slightly different from
# what a normal "make install" would produce. No extra "mysql" sub directory
# will be created, i.e. no "$prefix/include/mysql", "$prefix/lib/mysql" or
-# "$prefix/share/mysql".
+# "$prefix/share/mysql". This is because the build system explicitly calls
+# make with pkgdatadir=<datadir>, etc.
#
# In GNU make/automake terms
#
===== scripts/mysqld_safe.sh 1.95 vs edited =====
--- 1.95/scripts/mysqld_safe.sh 2007-10-10 14:15:05 -06:00
+++ edited/scripts/mysqld_safe.sh 2007-11-30 17:21:10 -07:00
@@ -202,14 +202,16 @@ parse_arguments() {
# First, try to find BASEDIR and ledir (where mysqld is)
#
+relpkgdata=`echo '@pkgdatadir@' | sed -e 's,^@prefix@,,' -e 's,^/,,' -e 's,^,./,'`
+
MY_PWD=`pwd`
# Check for the directories we would expect from a binary release install
-if test -f ./share/mysql/english/errmsg.sys -a -x ./bin/mysqld
+if test -f "$relpkgdata"/english/errmsg.sys -a -x ./bin/mysqld
then
MY_BASEDIR_VERSION=$MY_PWD # Where bin, share and data are
ledir=$MY_BASEDIR_VERSION/bin # Where mysqld is
# Check for the directories we would expect from a source install
-elif test -f ./share/mysql/english/errmsg.sys -a -x ./libexec/mysqld
+elif test -f "$replpkgdata"/english/errmsg.sys -a -x ./libexec/mysqld
then
MY_BASEDIR_VERSION=$MY_PWD # Where libexec, share and var are
ledir=$MY_BASEDIR_VERSION/libexec # Where mysqld is
[3 Dec 2007 22:48]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/39155 ChangeSet@1.2624, 2007-12-03 15:48:27-07:00, tsmith@ramayana.hindu.god +2 -0 Bug #32679: mysqld_safe looks for errmsg.sys in wrong path The fix for bug 28544 moved our package data from ./share/mysql to ./share. mysqld_safe had the old directory hard-coded. The fix is to use the @pkgdatadir@ and @prefix@ values, to adapt to different ways of building the package.
[5 Dec 2007 2:07]
Timothy Smith
Queued to 5.1- and 6.0-build team trees. Also pushed directly into 6.0.4-alpha release tree. This was not fixed in 5.0 or earlier, because the build system does not adjust pkgdatadir in those versions, so the hard-coded value (./share/mysql/...) in mysqld_safe matches the build, and people won't see a problem. It is only for versions >= 5.1 that the build system explicitly sets pkgdatadir and friends.
[24 Jan 2008 0:22]
Timothy Smith
Gah. Somehow this was *not* queued to 5.1+. Now it is in 5.1- and 6.0-build. It will be in 5.1.23 and 6.0.4. Sorry for any confusion.
[4 Feb 2008 20:06]
Sveta Smirnova
Bug #34288 was marked as duplicate of this one.
[25 Feb 2008 15:59]
Bugs System
Pushed into 5.1.24-rc
[25 Feb 2008 16:05]
Bugs System
Pushed into 6.0.5-alpha
[25 Feb 2008 19:35]
Paul DuBois
Noted in 5.1.23, 6.0.4 changelogs. mysqld_safe looked for error messages in the wrong location.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.064 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.