S97mysqld 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/sh
  2. #
  3. # mysql
  4. #
  5. MYSQL_LIB="/var/lib/mysql"
  6. MYSQL_RUN="/run/mysql"
  7. MYSQL_PID="$MYSQL_RUN/mysqld.pid"
  8. MYSQL_BIN="/usr/bin"
  9. wait_for_ready() {
  10. WAIT_DELAY=5
  11. while [ $WAIT_DELAY -gt 0 ]; do
  12. if $MYSQL_BIN/mysqladmin ping > /dev/null 2>&1; then
  13. return 0
  14. fi
  15. sleep 1
  16. : $((WAIT_DELAY -= 1))
  17. done
  18. return 1
  19. }
  20. start() {
  21. if [ `ls -1 $MYSQL_LIB | wc -l` = 0 ] ; then
  22. printf "Creating mysql system tables ... "
  23. $MYSQL_BIN/mysql_install_db --basedir=/usr --user=mysql \
  24. --datadir=$MYSQL_LIB > /dev/null 2>&1
  25. if [ $? != 0 ]; then
  26. echo "FAIL"
  27. exit 1
  28. fi
  29. echo "OK"
  30. fi
  31. # mysqld runs as user mysql, but /run is only writable by root
  32. # so create a subdirectory for mysql.
  33. install -d -o mysql -g root -m 0755 $MYSQL_RUN
  34. # We don't use start-stop-daemon because mysqld has its own
  35. # wrapper script.
  36. printf "Starting mysql ... "
  37. $MYSQL_BIN/mysqld_safe --pid-file=$MYSQL_PID --user=mysql \
  38. > /dev/null 2>&1 &
  39. wait_for_ready
  40. [ $? = 0 ] && echo "OK" || echo "FAIL"
  41. }
  42. stop() {
  43. printf "Stopping mysql ... "
  44. if [ -f $MYSQL_PID ]; then
  45. kill `cat $MYSQL_PID` > /dev/null 2>&1
  46. [ $? = 0 ] && echo "OK" || echo "FAIL"
  47. else
  48. echo "FAIL"
  49. fi
  50. }
  51. restart() {
  52. stop
  53. sleep 1
  54. start
  55. }
  56. case "$1" in
  57. start)
  58. start
  59. ;;
  60. stop)
  61. stop
  62. ;;
  63. restart)
  64. restart
  65. ;;
  66. *)
  67. echo "Usage: $0 {start|stop|restart}"
  68. ;;
  69. esac