summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMats Kindahl <mats@sun.com>2010-03-01 23:40:24 +0100
committerMats Kindahl <mats@sun.com>2010-03-01 23:40:24 +0100
commit5c8d6c7473d2b7fad7dd9ded24e686450b7fbb8a (patch)
treea971109f380c8769184e0c5bcc3ef16927e40ccf /scripts
parent7a83782f1caa102ebc552b017885f18f005425f0 (diff)
downloadmariadb-git-5c8d6c7473d2b7fad7dd9ded24e686450b7fbb8a.tar.gz
Bug #49022: Plugins included into bin release cannot be
installed on debug version of server When starting a server using mysqld_safe with the option --mysqld-version=debug, the debug version of the server is started. When attempting to load a plugin that is not debug-built, the load will fail because a non-debug built plugin use, e.g., fastmutex while the debug-built server uses safemutex. To solve this problem, mysqld_safe will set the plugin-dir to use a directory where debug-built plugins are placed. This patch sets the plugin dir to <plugin-dir>/whatever, when mysqld-version=whatever, and just <plugin-dir> otherwise.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/mysqld_safe.sh8
1 files changed, 7 insertions, 1 deletions
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index f08e870d5e0..a4ce5f9575b 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -54,6 +54,8 @@ Usage: $0 [OPTIONS]
--mysqld=FILE Use the specified file as mysqld
--mysqld-version=VERSION Use "mysqld-VERSION" as mysqld
--nice=NICE Set the scheduling priority of mysqld
+ --plugin-dir=DIR Plugins are under DIR or DIR/VERSION, if
+ VERSION is given
--skip-kill-mysqld Don't try to kill stray mysqld processes
--syslog Log messages to syslog with 'logger'
--skip-syslog Log messages to error log (default)
@@ -172,6 +174,7 @@ parse_arguments() {
--basedir=*) MY_BASEDIR_VERSION="$val" ;;
--datadir=*) DATADIR="$val" ;;
--pid-file=*) pid_file="$val" ;;
+ --plugin-dir=*) PLUGIN_DIR="$val" ;;
--user=*) user="$val"; SET_USER=1 ;;
# these might have been set in a [mysqld_safe] section of my.cnf
@@ -189,6 +192,7 @@ parse_arguments() {
if test -n "$val"
then
MYSQLD="mysqld-$val"
+ PLUGIN_VARIANT="/$val"
else
MYSQLD="mysqld"
fi
@@ -695,8 +699,10 @@ fi
cmd="`mysqld_ld_preload_text`$NOHUP_NICENESS"
+plugin_dir="${PLUGIN_DIR:-@PLUGINDIR@}${PLUGIN_VARIANT}"
+
for i in "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
- "--datadir=$DATADIR" "$USER_OPTION"
+ "--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION"
do
cmd="$cmd "`shell_quote_string "$i"`
done