on my linux boxes this is:
/etc/rc.d/init.d/mysql stop | start

----- Original Message -----
From: "Martin Cabrera Diaubalick" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, April 19, 2001 9:42 AM
Subject: Help restarting mysqld !!


> Hello everyone! This is the first time I post here, so please bear with
me.
>
> It all started when I deleted a whole table by mistake. So I try to
> recovered it by copying yesterday's backup. I had never done that before
and
> it all worked wrong. I found out MySQL server had to be restarted in order
> to changes take effect.
>
> I kill mysqld daemon with a 'kill PID', but I didn't know how to restart
it
> .I tried with a 'mysqld'  but as soon as I close the Terminal Window,
mysqld
> died.
> Then I tried with 'mysqld &' and it crashed after a while.
> Finally I found this nice little script below, I executed it but due to my
> ignorance I don't if what I did is right. Everything seems to be ok right
> now but I'm not sure if it's gonna crash in a while.
>
> Could you please take a look at it and tell me what you think.
>
>
> Thanks in advance
>
> Regards
>
> MySQL version: 3.22.32
> OS: FreeBSD 4.2
>
>
>
>
>
>
> ***************************           Beginning of safe_mysqld
> ********************************
>
> #!/bin/sh
> # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron
HB
> # This file is public domain and comes with NO WARRANTY of any kind
> #
> # scripts to start the MySQL daemon and restart it if it dies unexpectedly
> #
> # This should be executed in the MySQL base directory if you are using a
> # binary installation that has other paths than you are using.
> #
> # mysql.server works by first doing a cd to the base directory and from
> there
> # executing safe_mysqld
>
> trap '' 1 2 3 15   # we shouldn't let anyone kill us
>
> # Check if we are starting this relative (for the binary release)
> if test -d ./data/mysql -a -f ./share/mysql/english/errmsg.sys -a \
>  -x ./bin/mysqld
> then
>   MY_BASEDIR_VERSION=`pwd`  # Where bin, share and data are
>   DATADIR=$MY_BASEDIR_VERSION/data # Where the databases are
>   ledir=$MY_BASEDIR_VERSION/bin  # Where mysqld is
> # Check if this is a 'moved install directory'
> elif test -f ./var/mysql/db.frm -a -f ./share/mysql/english/errmsg.sys -a
\
>  -x ./libexec/mysqld
> then
>   MY_BASEDIR_VERSION=`pwd`  # Where libexec, share and var are
>   DATADIR=$MY_BASEDIR_VERSION/var # Where the databases are
>   ledir=$MY_BASEDIR_VERSION/libexec # Where mysqld is
> else
>   MY_BASEDIR_VERSION=/usr/home/notodo/usr/local/mysql
>   DATADIR=/usr/home/notodo/usr/local/mysql/var
>   ledir=/usr/local/bin/
>   if test ! -x $ledir/mysqld
>   then
>     echo "The file $ledir/mysqld doesn't exist or is not executable"
>     echo "Please do a cd to the mysql installation directory and restart"
>     echo "this script from there as follows:"
>     echo "./bin/safe_mysqld".
>     exit 1;
>   fi
> fi
>
> pid_file=$DATADIR/`/bin/hostname`.pid
> log=$DATADIR/`/bin/hostname`.log
> err_log=$DATADIR/`/bin/hostname`.err
>
> # Parse arguments to see if caller wants the pid_file somewhere else.
> for arg
> do
>   case $arg
>     in
>     --pid-file=*)
>       pid_file=`echo "$arg" | sed -e "s;--pid-file=;;"`
>       ;;
>     --datadir=*)
>       DATADIR=`echo "$arg" | sed -e "s;--datadir=;;"`
>       ;;
>   esac
> done
>
> #
> # If there exists an old pid file, check if the daemon is already running
> # Note: The switches to 'ps' may depend on your operating system
>
> if test -f $pid_file
> then
>   PID=`cat $pid_file`
>   if /bin/kill -0 $PID
>   then
>     if /bin/ps p $PID | grep mysqld > /dev/null
>     then    # The pid contains a mysqld process
>       echo "A mysqld process already exists"
>       echo "A mysqld process already exists at " `date` >> $err_log
>       exit 1;
>     fi
>   fi
>   rm -f $pid_file
>   if test -f $pid_file
>   then
>     echo "Fatal error: Can't remove the pid file: $pid_file"
>     echo "Fatal error: Can't remove the pid file: $pid_file at " `date` >>
> $err_log
>     echo "Please remove it manually and start $0 again"
>     echo "mysqld daemon not started"
>     exit 1;
>   fi
> fi
>
> #
> # Uncomment the following lines if you want all tables to be automaticly
> # checked and repaired at start
> #
> # echo "Checking tables in $DATADIR"
> # isamchk --silent --force $DATADIR/*.ISM
>
> echo "Starting mysqld daemon with databases from $DATADIR"
>
> #Default communication ports
> #MYSQL_TCP_PORT=3306
> if test -z "$MYSQL_UNIX_PORT"
> then
>   MYSQL_UNIX_PORT="/tmp/mysql.sock"
>   export MYSQL_UNIX_PORT
> fi
> #export MYSQL_TCP_PORT
>
> # Does this work on all systems?
> #if type ulimit | grep "shell builtin" > /dev/null
> #then
> #  ulimit -n 256 > /dev/null 2>&1  # Fix for BSD and FreeBSD systems
> #fi
>
> echo "mysqld started on " `date` >> $err_log
> while true
> do
>   rm -f $MYSQL_UNIX_PORT $pid_file # Some extra safety
>   if test "$#" -eq 0
>   then
>     nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR \
>       >> $err_log 2>&1
>   else
>     nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR \
>       "$@" >> $err_log 2>&1
>   fi
>   if test ! -f $pid_file  # This is removed if normal shutdown
>   then
>     break;
>   fi
>   if false
>   then
>     # Test if one process was hanging.
>     # This is only a fix for Linux (running as base 3 mysqld processes)
>     # but should work for the rest of the servers.
>     # The only thing is ps x => redhat 5 gives warnings when using ps -x.
>     # kill -9 is used or the process won't react on the kill.
>     numofproces=`ps x | grep -v "grep" | grep -c $ledir/mysqld`
>     echo -e "\nNumber of processes running now: $numofproces" | tee -a
> $err_log
>     I=1
>     while test "$I" -le "$numofproces"
>     do
>       PROC=`ps x | grep $ledir/mysqld | grep -v "grep" | tail -1`
>  for T in $PROC
>  do
>    break
>  done
>  #    echo "TEST $I - $T **"
>  if kill -9 $T
>  then
>    echo "mysqld process hanging, pid $T - killed" | tee -a $err_log
>  else
>    break
>  fi
>  I=`expr $I + 1`
>     done
>   fi
>   echo "mysqld restarted on " `date` | tee -a $err_log
> done
>
> echo "mysqld ended on " `date` >> $err_log
> echo "mysqld daemon ended"
>
> ***************************           End of safe_mysqld
> ********************************
>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
<[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to