S97mysqld 1.6 KB

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