mysql.server.sh
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #!/bin/sh
  2. # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
  3. # This file is public domain and comes with NO WARRANTY of any kind
  4. # Mysql daemon start/stop script.
  5. # Usually this is put in /etc/init.d (at least on machines SYSV R4 based
  6. # systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/S01mysql.
  7. # When this is done the mysql server will be started when the machine is
  8. # started and shut down when the systems goes down.
  9. # Comments to support chkconfig on RedHat Linux
  10. # chkconfig: 2345 90 90
  11. # description: A very fast and reliable SQL database engine.
  12. # The following variables are only set for letting mysql.server find things.
  13. # If you want to affect other MySQL variables, you should make your changes
  14. # in the /etc/my.cnf or other configuration files.
  15. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  16. export PATH
  17. # Set some defaults
  18. datadir=@localstatedir@
  19. basedir=
  20. pid_file=
  21. if test -z "$basedir"
  22. then
  23.   basedir=@prefix@
  24.   bindir=@bindir@
  25. else
  26.   bindir="$basedir/bin"
  27. fi
  28. if test -z "$pid_file"
  29. then
  30.   pid_file=$datadir/`@HOSTNAME@`.pid
  31. else
  32.   case "$pid_file" in
  33.     /* ) ;;
  34.     * )  pid_file="$datadir/$pid_file" ;;
  35.   esac
  36. fi
  37. mode=$1    # start or stop
  38. parse_arguments() {
  39.   for arg do
  40.     case "$arg" in
  41.       --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
  42.       --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
  43.       --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
  44.     esac
  45.   done
  46. }
  47. # Get arguments from the my.cfg file, groups [mysqld] and [mysql_server]
  48. if test -x ./bin/my_print_defaults
  49. then
  50.   print_defaults="./bin/my_print_defaults"
  51. elif test -x $bindir/my_print_defaults
  52. then
  53.   print_defaults="$bindir/my_print_defaults"
  54. elif test -x $bindir/mysql_print_defaults
  55. then
  56.   print_defaults="$bindir/mysql_print_defaults"
  57. else
  58.   # Try to find basedir in /etc/my.cnf
  59.   conf=/etc/my.cnf
  60.   print_defaults=
  61.   if test -r $conf
  62.   then
  63.     subpat='^[^=]*basedir[^=]*=(.*)$'
  64.     dirs=`sed -e "/$subpat/!d" -e 's//1/' $conf`
  65.     for d in $dirs
  66.     do
  67.       d=`echo $d | sed -e 's/[  ]//g'`
  68.       if test -x "$d/bin/my_print_defaults"
  69.       then
  70.         print_defaults="$d/bin/my_print_defaults"
  71.         break
  72.       fi
  73.       if test -x "$d/bin/mysql_print_defaults"
  74.       then
  75.         print_defaults="$d/bin/mysql_print_defaults"
  76.         break
  77.       fi
  78.     done
  79.   fi
  80.   # Hope it's in the PATH ... but I doubt it
  81.   test -z "$print_defaults" && print_defaults="my_print_defaults"
  82. fi
  83. parse_arguments `$print_defaults $defaults mysqld mysql_server`
  84. # Safeguard (relative paths, core dumps..)
  85. cd $basedir
  86. case "$mode" in
  87.   'start')
  88.     # Start daemon
  89.     if test -x $bindir/safe_mysqld
  90.     then
  91.       # Give extra arguments to mysqld with the my.cnf file. This script may
  92.       # be overwritten at next upgrade.
  93.       $bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file &
  94.       # Make lock for RedHat / SuSE
  95.       if test -w /var/lock/subsys
  96.       then
  97.         touch /var/lock/subsys/mysql
  98.       fi
  99.     else
  100.       echo "Can't execute $bindir/safe_mysqld"
  101.     fi
  102.     ;;
  103.   'stop')
  104.     # Stop daemon. We use a signal here to avoid having to know the
  105.     # root password.
  106.     if test -f "$pid_file"
  107.     then
  108.       mysqld_pid=`cat $pid_file`
  109.       echo "Killing mysqld with pid $mysqld_pid"
  110.       kill $mysqld_pid
  111.       # mysqld should remove the pid_file when it exits, so wait for it.
  112.       sleep 1
  113.       while [ -s $pid_file -a "$flags" != aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]
  114.       do
  115.         [ -z "$flags" ] && echo "Wait for mysqld to exitc" || echo ".c"
  116.         flags=a$flags
  117.         sleep 1
  118.       done
  119.       if [ -s $pid_file ]
  120.          then echo " gave up waiting!"
  121.       elif [ -n "$flags" ]
  122.          then echo " done"
  123.       fi
  124.       # delete lock for RedHat / SuSE
  125.       if test -f /var/lock/subsys/mysql
  126.       then
  127.         rm /var/lock/subsys/mysql
  128.       fi
  129.     else
  130.       echo "No mysqld pid file found. Looked for $pid_file."
  131.     fi
  132.     ;;
  133.   *)
  134.     # usage
  135.     echo "usage: $0 start|stop"
  136.     exit 1
  137.     ;;
  138. esac