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