Bugzilla – Attachment 65901 Details for
Bug 146739
MySQL misses tables after update
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
rcmysql
rc.mysql (text/plain), 7.38 KB, created by
Michal Marek
on 2006-01-31 17:27:48 UTC
(
hide
)
Description:
rcmysql
Filename:
MIME Type:
Creator:
Michal Marek
Created:
2006-01-31 17:27:48 UTC
Size:
7.38 KB
patch
obsolete
>#!/bin/sh ># Copyright (c) 1995-2002 SuSE Linux AG Nuernberg, Germany. ># ># Author: Lenz Grimmer <feedback@suse.de> ># ># /etc/init.d/mysql ># ># and its symbolic link ># ># /usr/sbin/rcmysql ># >### BEGIN INIT INFO ># Provides: mysql ># Required-Start: $network $remote_fs ># Required-Stop: ># Default-Start: 2 3 5 ># Default-Stop: ># Description: Start the MySQL database server >### END INIT INFO > ># Shell functions sourced from /etc/rc.status: ># rc_check check and set local and overall rc status ># rc_status check and set local and overall rc status ># rc_status -v ditto but be verbose in local rc status ># rc_status -v -r ditto and clear the local rc status ># rc_failed set local and overall rc status to failed ># rc_failed <num> set local and overall rc status to <num> ># rc_reset clear local rc status (overall remains) ># rc_exit exit appropriate to overall rc status >. /etc/rc.status > ># First reset status of this service >rc_reset > ># Return values acc. to LSB for all commands but status: ># 0 - success ># 1 - generic or unspecified error ># 2 - invalid or excess argument(s) ># 3 - unimplemented feature (e.g. "reload") ># 4 - insufficient privilege ># 5 - program is not installed ># 6 - program is not configured ># 7 - program is not running ># ># Note that starting an already running service, stopping ># or restarting a not-running service as well as the restart ># with force-reload (in case signalling is not supported) are ># considered a success. > ># Test, if mysqld or mysql-max actually exist >unset MYSQLD >if test -x /usr/sbin/mysqld-max >then > MYSQLD=/usr/sbin/mysqld-max >elif test -x /usr/sbin/mysqld >then > MYSQLD=/usr/sbin/mysqld >fi >test "$MYSQLD" || { echo "Nor /usr/sbin/mysqld nor /usr/sbin/mysqld-max exists"; rc_failed 5; rc_status -v; rc_exit; } > ># The following section has been taken from ># the original MySQL init script >basedir=/usr >datadir=/var/lib/mysql >mysql_daemon_user=mysql >mysql_daemon_group=mysql >pid_file=/var/lib/mysql/mysqld.pid >socket=/var/lib/mysql/mysql.sock >MYADMIN=/usr/bin/mysqladmin >export TMPDIR=/var/lib/mysql/tmp >if test -z "$basedir" >then > basedir=/usr > bindir=/usr/bin >else > bindir="$basedir/bin" >fi > >if test -z "$pid_file" >then > pid_file=$datadir/`/bin/hostname`.pid >else > case "$pid_file" in > /* ) ;; > * ) pid_file="$datadir/$pid_file" ;; > esac >fi > >mode=$1 # start or stop > >parse_arguments() { > for arg do > case "$arg" in > --basedir=*) basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; > --datadir=*) datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; > --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; > --socket=*) socket=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; > esac > done >} > ># Get arguments from the my.cnf file, groups [mysqld] and [mysql_server] >if test -x ./bin/my_print_defaults >then > print_defaults="./bin/my_print_defaults" >elif test -x $bindir/my_print_defaults >then > print_defaults="$bindir/my_print_defaults" >elif test -x $bindir/mysql_print_defaults >then > print_defaults="$bindir/mysql_print_defaults" >else > # Try to find basedir in /etc/my.cnf > conf=/etc/my.cnf > print_defaults= > if test -r $conf > then > subpat='^[^=]*basedir[^=]*=\(.*\)$' > dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf` > for d in $dirs > do > d=`echo $d | sed -e 's/[ ]//g'` > if test -x "$d/bin/my_print_defaults" > then > print_defaults="$d/bin/my_print_defaults" > break > fi > if test -x "$d/bin/mysql_print_defaults" > then > print_defaults="$d/bin/mysql_print_defaults" > break > fi > done > fi > > # Hope it's in the PATH ... but I doubt it > test -z "$print_defaults" && print_defaults="my_print_defaults" >fi > >parse_arguments `$print_defaults $defaults mysqld mysql_server` > ># Safeguard (relative paths, core dumps..) >cd $basedir > >case "$1" in > start) > # exit gracefully, if we are already running > checkproc $MYSQLD && echo -n "Starting service MySQL " && \ > rc_status -v && rc_exit > > # Test, if safe_mysqld actually exists > SAFE_MYSQLD=/usr/bin/mysqld_safe > test -x $SAFE_MYSQLD || { echo "$SAFE_MYSQLD does not exist "; rc_failed 5; rc_status -v; rc_exit; } > > # check for ISAM tables > tables=`find $datadir -name '*.ISM' | sed "s@$datadir/*@@; s@.ISM@@; s@/@.@;"` > if test "$tables" ; then > echo > echo "Some tables still use ISAM format, please convert them to something " > echo "better (eg. MyISAM). ISAM support will be dropped in future releases. " > echo "You can use mysql_convert_table_format script to do this conversion. " > echo > echo "Tables using ISAM are: " > echo " $tables " > echo > fi > > # this file was used in past, but it's batter to place it youtside database directory > if test -f $datadir/mysql/stamp-4.1 ; then > rm $datadir/mysql/stamp-4.1 > fi > > # We assume a fresh install if the directory $datadir/mysql > # does not exist and create the privilege database > if ! ls $datadir/update-stamp-* >/dev/null 2>&1 ; then > echo "Creating/Updating MySQL privilege database... " > mysql_install_db --user=$mysql_daemon_user --datadir=$datadir || rc_failed > fi > if test ! -f $datadir/update-stamp-5.0 ; then > echo "Updating MySQL privilege database... " > > echo "Fixing privilege tables... " > (echo 'USE mysql;'; cat /usr/share/mysql/mysql_fix_privilege_tables.sql) \ > | sed '/^---\? /D; s/#.*//; s/;$/#/' | tr '\n' ' ' | tr '#' '\n' \ > | /usr/sbin/mysqld \ > --bootstrap \ > --skip-innodb \ > --skip-bdb \ > --skip-grant-tables \ > --user=$mysql_daemon_user \ > --pid-file=$pid_file \ > --socket=$socket \ > --datadir=$datadir 2>/dev/null > > rm -f $datadir/update-stamp-4.1 > touch $datadir/update-stamp-5.0 > > # Fix ownerships and permissions for $datadir > chmod 755 $datadir > chown -R $mysql_daemon_user.$mysql_daemon_group $datadir > fi > > echo -n "Starting service MySQL " > > $SAFE_MYSQLD \ > --user=$mysql_daemon_user \ > --pid-file=$pid_file \ > --socket=$socket \ > --datadir=$datadir &>/dev/null & > > for((i=0; i<50; i++)); do > sleep 0.2 > test -S $socket && i='' && break > done > > test -z "$i" || rc_failed > > # Rmember status and be verbose > rc_status -v > ;; > > stop) > echo -n "Shutting down service MySQL " > killproc -p $pid_file -TERM $MYSQLD > > # Remember status and be verbose > rc_status -v > ;; > > try-restart) > ## Stop the service and if this succeeds (i.e. the > ## service was running before), start it again. > ## Note: try-restart is not (yet) part of LSB (as of 0.7.5) > $0 status >/dev/null && $0 restart > > # Remember status and be quiet > rc_status > ;; > > restart|force-reload) > echo "Restarting service MySQL " > $0 stop > $0 start > > rc_status > ;; > > reload) > echo -n "Reloading service MySQL " > killproc -p $pid_file -HUP $MYSQLD > touch $pid_file > rc_status -v > ;; > > check|status) > echo -n "Checking for service MySQL: " > ## Check status with checkproc(8), if process is running > ## checkproc will return with exit status 0. > > # Status has a slightly different for the status command: > # 0 - service running > # 1 - service dead, but /var/run/ pid file exists > # 2 - service dead, but /var/lock/ lock file exists > # 3 - service not running > > # NOTE: checkproc returns LSB compliant status values. > checkproc $MYSQLD > rc_status -v > ;; > > *) > echo "Usage: $0 {start|stop|status|reload|restart|try-restart|force-reload}" > exit 1 > ;; >esac >rc_exit > ># vim: ft=sh
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
Attachments on
bug 146739
: 65901