Ich nutze für einige Installationen bestimmte Pfade für das plugin-dir.
Bei dem Upgrade auf MySQL 5.5 wurde die Konfiguration nicht mehr gezogen.
Beim direkten Starten vom mysqld $CONF war wieder alles in Ordnung.
Es zeigte sich, dass der Fehler im mysqld_safe liegt.
mysqld_safe meint seit 5.5.? die Option plugin-dir parsen zu müssen.
Hierfür wurde die Funktion parse_arguments() erweitert.
#v+
177 --plugin-dir=*) PLUGIN_DIR="$val" ;;
#v-
Folgender Code greift auf die Variable zu (wenn die denn gesetzt wurde):
421 if [ -n "${PLUGIN_DIR}" ]; then
422 plugin_dir="${PLUGIN_DIR}"
423 else
424 # Try to find plugin dir relative to basedir
425 for dir in lib/mysql/plugin lib/plugin
426 do
427 if [ -d "${MY_BASEDIR_VERSION}/${dir}" ]; then
428 plugin_dir="${MY_BASEDIR_VERSION}/${dir}"
429 break
430 fi
431 done
432 # Give up and use compiled-in default
433 if [ -z "${plugin_dir}" ]; then
434 plugin_dir='/usr/local/mysql/lib/plugin'
435 fi
436 fi
Dummerweise wird die Funktion zum Parsen der Config erst später aufgerufen :/
488 parse_arguments `$print_defaults $defaults --loose-verbose mysqld server`
494 parse_arguments `$print_defaults $defaults --loose-verbose mysqld_safe safe_mysqld`
495 parse_arguments PICK-ARGS-FROM-ARGV "$@"
Ergo ist es egal was konfiguriert wurde. Da zum Zeitpunkt des ersten Code-Schnipsels $PLUGIN_DIR immer leer ist.
Bugreport: http://bugs.mysql.com/bug.php?id=63862
Für jene, welche einen schnellen Würgaround brauchen, einfach
"--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION"
durch
"--datadir=$DATADIR" "$USER_OPTION"
ersetzen.
Viel Spaß
Erkan
Bei dem Upgrade auf MySQL 5.5 wurde die Konfiguration nicht mehr gezogen.
Beim direkten Starten vom mysqld $CONF war wieder alles in Ordnung.
Es zeigte sich, dass der Fehler im mysqld_safe liegt.
mysqld_safe meint seit 5.5.? die Option plugin-dir parsen zu müssen.
Hierfür wurde die Funktion parse_arguments() erweitert.
#v+
177 --plugin-dir=*) PLUGIN_DIR="$val" ;;
#v-
Folgender Code greift auf die Variable zu (wenn die denn gesetzt wurde):
421 if [ -n "${PLUGIN_DIR}" ]; then
422 plugin_dir="${PLUGIN_DIR}"
423 else
424 # Try to find plugin dir relative to basedir
425 for dir in lib/mysql/plugin lib/plugin
426 do
427 if [ -d "${MY_BASEDIR_VERSION}/${dir}" ]; then
428 plugin_dir="${MY_BASEDIR_VERSION}/${dir}"
429 break
430 fi
431 done
432 # Give up and use compiled-in default
433 if [ -z "${plugin_dir}" ]; then
434 plugin_dir='/usr/local/mysql/lib/plugin'
435 fi
436 fi
Dummerweise wird die Funktion zum Parsen der Config erst später aufgerufen :/
488 parse_arguments `$print_defaults $defaults --loose-verbose mysqld server`
494 parse_arguments `$print_defaults $defaults --loose-verbose mysqld_safe safe_mysqld`
495 parse_arguments PICK-ARGS-FROM-ARGV "$@"
Ergo ist es egal was konfiguriert wurde. Da zum Zeitpunkt des ersten Code-Schnipsels $PLUGIN_DIR immer leer ist.
Bugreport: http://bugs.mysql.com/bug.php?id=63862
Für jene, welche einen schnellen Würgaround brauchen, einfach
"--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION"
durch
"--datadir=$DATADIR" "$USER_OPTION"
ersetzen.
Viel Spaß
Erkan