]> git.pld-linux.org Git - packages/mysql.git/blob - mysql.init
- redirect kill error to /dev/null
[packages/mysql.git] / mysql.init
1 #!/bin/sh
2 #
3 # mysql         A very fast and reliable SQL database engine
4 #
5 # chkconfig:    2345 84 25
6 #
7 # description:  A very fast and reliable SQL database engine.
8 #
9
10 # Source function library
11 . /etc/rc.d/init.d/functions
12
13 # Get network config
14 . /etc/sysconfig/network
15
16 # Get service config
17 if [ -f /etc/sysconfig/mysql ]; then
18         . /etc/sysconfig/mysql
19 else
20         nls "Error: %s not found" /etc/sysconfig/mysql
21         nls " MySQL can't be run."
22         exit 1
23 fi
24
25 if [ ! "$MYSQL_DB_CLUSTERS" ]; then
26         nls "Error: MYSQL_DB_CLUSTERS not found or is empty"
27         nls " MySQL can't be run."
28         exit 1
29 fi
30
31 # Check that networking is up
32 if is_yes "${NETWORKING}"; then
33         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
34                 msg_network_down MySQL
35                 exit 1
36         fi
37 else
38         exit 0
39 fi
40
41 # Get service config
42 if [ -f /etc/sysconfig/mysql ]; then
43         . /etc/sysconfig/mysql
44 fi
45
46 action="$1"
47
48 # any db cluster as command line argument?
49 if [ $# -gt 1 ]; then
50         shift
51         # perform action for specified clusters only
52         DB_CLUSTERS="$@"
53 else
54         DB_CLUSTERS="$MYSQL_DB_CLUSTERS"
55 fi
56
57 MYSQL_ERRLOG=/var/log/mysql/err
58
59 #
60 # Useful functions.
61 #
62
63 #
64 # check for mysql status
65 #
66 # arguments:
67 # $1 - db cluster
68 #
69 # sets variables:
70 # MYSQL_STATUS = running | not running
71 # MYSQL_PID    = pid of mysqld process
72 #
73 mysqlstatus() {
74         clusterdir="$1"
75         mysqlgetconfig "$clusterdir"
76         MYSQL_STATUS="unknown"
77         MYSQL_PID="unknown"
78
79         [ -f "$MYSQL_PIDFILE" ] && MYSQL_PID=$(cat "$MYSQL_PIDFILE")
80
81         if [ ! -d "/proc/$MYSQL_PID" -a "$MYSQL_PID" != "unknown" ]; then
82             MYSQL_STATUS="died"
83         elif [ -d "/proc/$MYSQL_PID" ]; then
84             grep -q "$MYSQL_PIDFILE" /proc/$MYSQL_PID/cmdline && MYSQL_STATUS="running" || MYSQL_STATUS="not running"
85         fi
86 }
87
88 # get mysql configuration in variables
89 # MYSQL_CONFIG MYSQL_DATA_DIR MYSQL_USER MYSQL_PIDFILE
90 #
91 # arguments
92 # $1 - db cluster
93
94 mysqlgetconfig() {
95         clusterdir="$1"
96         config_file="/etc/mysqld/mysqld$(echo "$clusterdir" | tr '/' '-').conf"
97
98         # emulate old behaviour if only one cluster specified
99         if [ "$clusterdir" = "$MYSQL_DB_CLUSTERS" -a "$clusterdir" = "/var/lib/mysql" -a -f /etc/mysqld.conf ]; then
100                 MYSQL_NO_CLUSTER_COMPAT=yes; export MYSQL_NO_CLUSTER_COMPAT
101                 config_file=/etc/mysqld.conf
102         fi
103
104         MYSQL_CLUSTER_DIR="$clusterdir"; export MYSQL_CLUSTER_DIR
105         MYSQL_CONFIG="$config_file"; export MYSQL_CONFIG
106
107         if [ ! -f "$config_file" ]; then
108                 nls "Error: config file %s not found" "$config_file"
109                 nls " MySQL can't be run."
110                 exit 6
111         fi
112
113         eval `awk '
114 /^[ \t]*\[.*\][ \t]*$/ {
115         match($0,/\[.*\]/)
116         section=substr($0,RSTART+1,RSTART+RLENGTH-3)
117 }
118 section=="mysqld" && $2~"=" {
119         if ($1=="datadir") {
120                 printf("MYSQL_DATA_DIR=%s;", $3)
121         } else if ($1=="user") {
122                 printf("MYSQL_USER=%s;", $3)
123         } else if ($1=="pid-file") {
124                 printf("MYSQL_PIDFILE=%s;", $3)
125         } else if ($1=="socket") {
126                 printf("MYSQL_SOCKET=%s;", $3)
127         }
128 }
129 END {
130         print "export MYSQL_DATA_DIR MYSQL_USER MYSQL_PIDFILE MYSQL_SOCKET"
131 }
132 ' $config_file`
133
134         if [ -z "$MYSQL_DATA_DIR" -o "$MYSQL_DATA_DIR" != "$clusterdir/db" ]; then
135                 nls "Error: datadir specified in %s should be %s" "$config_file" "$clusterdir/db"
136                 nls " MySQL can't be run."
137                 exit 6
138         fi
139
140         if ! is_yes "$MYSQL_NO_CLUSTER_COMPAT"; then                    
141                 if [ -z "$MYSQL_PIDFILE" -o "$MYSQL_PIDFILE" != "$clusterdir/mysql.pid" ]; then
142                         nls "Error: pid-file specified in %s should be %s" "$config_file" "$clusterdir/mysql.pid"
143                         nls " MySQL can't be run."
144                         exit 6
145                 fi
146         fi
147
148         if [ -z $MYSQL_USER ]; then
149                 echo "$(nls 'MySQL user not configured properly')"'!' >&2
150                 nls "Edit %s and configure it." "$config_file" >&2
151                 exit 6
152         fi
153 }
154
155 # start mysql
156 mysqlstart() {
157         clusterdir="$1"
158         mysqlgetconfig "$clusterdir"
159         if [ ! -d "$MYSQL_DATA_DIR/mysql" ]; then
160                 nls "MySQL cluster %s not initialized." "$clusterdir"
161                 nls "Try \`%s init %s' before start." "$0" "$clusterdir"
162                 exit 6
163         fi
164
165         msg_starting "MySQL $clusterdir"
166         busy
167         [ -z "$DEFAULT_SERVICE_RUN_NICE_LEVEL" ] && DEFAULT_SERVICE_RUN_NICE_LEVEL=0
168         TMPDIR=/tmp nice -n ${SERVICE_RUN_NICE_LEVEL:-$DEFAULT_SERVICE_RUN_NICE_LEVEL} /usr/sbin/mysqld --defaults-file=$MYSQL_CONFIG --datadir=$MYSQL_DATA_DIR --pid-file=$MYSQL_PIDFILE >> $MYSQL_ERRLOG 2>&1 &
169         sleep 1
170         mysqlstatus "$clusterdir"
171         if [ "$MYSQL_STATUS" = "running" -a "$MYSQL_PID" != "unknown" ]; then
172                 ok
173         elif [ "$MYSQL_STATUS" = "died" ]; then
174                 RETVAL=1
175                 died
176         else
177                 RETVAL=1
178                 fail
179         fi
180 }
181
182 # stop mysql
183 mysqlstop() {
184         clusterdir="$1"
185         mysqlstatus "$clusterdir"
186         msg_stopping "MySQL $clusterdir"
187         busy
188         [ "$MYSQL_PID" != "unknown" ] && kill -TERM "$MYSQL_PID" 2> /dev/null
189         # 3 seconds
190         for nr in 1 2 3; do
191                 [ -d "/proc/$MYSQL_PID" ] && sleep 1
192         done
193         mysqlstatus "$clusterdir"
194         if [ "$MYSQL_STATUS" = "died" ]; then
195                 died
196         elif [ "$MYSQL_STATUS" = "running" ]; then
197                 fail
198         else
199                 ok
200         fi
201         rm -f "$MYSQL_PIDFILE"
202 }
203
204 #
205 # check for running mysql instances; if any instance is running then
206 # create subsys lock file
207 #
208 mysqlsubsys() {
209         # check for every defined db cluster in sysconfig file
210         for mysqldir in $DB_CLUSTERS; do
211                 mysqlstatus "$mysqldir"
212                 if [ "$MYSQL_STATUS" = "running" ]; then
213                         touch /var/lock/subsys/mysql
214                         return
215                 fi
216         done
217         rm -f /var/lock/subsys/mysql
218 }
219
220 mysqlinit() {
221         clusterdir="$1"
222         mysqlgetconfig "$clusterdir"
223
224         nls "Initializing cluster %s" "$clusterdir"
225
226         # Check if not exist init database
227         if [ -d "$MYSQL_DATA_DIR/mysql" ]; then
228                 nls "Seems that database is initialized now. Remove by hand %s" "$MYSQL_DATA_DIR/mysql"
229                 nls "before initializing database."
230                 nls "For now skipping cluster %s." "$clusterdir"
231                 return
232         fi
233
234         show "Creating privilege mysql tables for $MYSQL_DATA_DIR"
235         busy
236         TMP=/tmp TMPDIR=/tmp 
237
238                 
239         # Install this in the user table, too
240         hostname="`hostname --fqdn | tr -d '[:space:]'`"
241                 
242         # Check if hostname is valid
243         if [ -z "$hostname" ]; then
244                 deltext
245                 fail
246                 nls "Sorry, the host name is not configured."
247                 nls "Please configure the 'hostname' command to return a hostname."
248                 exit 1
249         elif ! hostname -i >/dev/null 2>&1; then 
250                 deltext
251                 fail
252                 nls "Sorry, the host '%s' could not be looked up." "$hostname"
253                 nls "Please configure the 'hostname' command to return a correct hostname."
254                 exit 1
255         fi
256
257         # Initialize variables
258         c_d="" i_d=""
259         c_h="" i_h=""
260         c_u="" i_u=""
261         c_f="" i_f=""
262         c_t="" c_c=""
263
264         # Check for old tables
265         if test ! -f $MYSQL_DATA_DIR/mysql/db.frm
266         then
267           # mysqld --bootstrap wants one command/line
268           c_d="$c_d CREATE TABLE db ("
269           c_d="$c_d   Host char(60) DEFAULT '' NOT NULL,"
270           c_d="$c_d   Db char(64) DEFAULT '' NOT NULL,"
271           c_d="$c_d   User char(16) DEFAULT '' NOT NULL,"
272           c_d="$c_d   Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
273           c_d="$c_d   Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
274           c_d="$c_d   Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
275           c_d="$c_d   Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
276           c_d="$c_d   Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
277           c_d="$c_d   Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
278           c_d="$c_d   Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
279           c_d="$c_d   References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
280           c_d="$c_d   Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
281           c_d="$c_d   Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
282           c_d="$c_d   Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
283           c_d="$c_d   Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
284           c_d="$c_d PRIMARY KEY Host (Host,Db,User),"
285           c_d="$c_d KEY User (User)"
286           c_d="$c_d )"
287           c_d="$c_d comment='Database privileges';"
288
289           i_d="INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');
290           INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');"
291             
292         fi
293
294         if test ! -f $MYSQL_DATA_DIR/mysql/host.frm
295         then
296           c_h="$c_h CREATE TABLE host ("
297           c_h="$c_h  Host char(60) DEFAULT '' NOT NULL,"
298           c_h="$c_h  Db char(64) DEFAULT '' NOT NULL,"
299           c_h="$c_h  Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
300           c_h="$c_h  Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
301           c_h="$c_h  Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
302           c_h="$c_h  Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
303           c_h="$c_h  Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
304           c_h="$c_h  Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
305           c_h="$c_h  Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
306           c_h="$c_h  References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
307           c_h="$c_h  Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
308           c_h="$c_h  Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
309           c_h="$c_h  Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
310           c_h="$c_h  Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
311           c_h="$c_h  PRIMARY KEY Host (Host,Db)"
312           c_h="$c_h )"
313           c_h="$c_h comment='Host privileges;  Merged with database privileges';"
314         fi
315
316         if test ! -f $MYSQL_DATA_DIR/mysql/user.frm
317         then
318           c_u="$c_u CREATE TABLE user ("
319           c_u="$c_u   Host char(60) DEFAULT '' NOT NULL,"
320           c_u="$c_u   User char(16) DEFAULT '' NOT NULL,"
321           c_u="$c_u   Password char(16) DEFAULT '' NOT NULL,"
322           c_u="$c_u   Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
323           c_u="$c_u   Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
324           c_u="$c_u   Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
325           c_u="$c_u   Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
326           c_u="$c_u   Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
327           c_u="$c_u   Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
328           c_u="$c_u   Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
329           c_u="$c_u   Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
330           c_u="$c_u   Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
331           c_u="$c_u   File_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
332           c_u="$c_u   Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
333           c_u="$c_u   References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
334           c_u="$c_u   Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
335           c_u="$c_u   Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
336           c_u="$c_u   Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
337           c_u="$c_u   Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
338           c_u="$c_u   Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
339           c_u="$c_u   Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
340           c_u="$c_u   Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
341           c_u="$c_u   Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
342           c_u="$c_u   Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
343           c_u="$c_u   ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,"
344           c_u="$c_u   ssl_cipher BLOB NOT NULL,"
345           c_u="$c_u   x509_issuer BLOB NOT NULL,"
346           c_u="$c_u   x509_subject BLOB NOT NULL,"
347           c_u="$c_u   max_questions int(11) unsigned DEFAULT 0  NOT NULL,"
348           c_u="$c_u   max_updates int(11) unsigned DEFAULT 0  NOT NULL,"
349           c_u="$c_u   max_connections int(11) unsigned DEFAULT 0  NOT NULL,"
350           c_u="$c_u   PRIMARY KEY Host (Host,User)"
351           c_u="$c_u )"
352           c_u="$c_u comment='Users and global privileges';"
353
354           i_u="INSERT INTO user VALUES ('localhost','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
355           INSERT INTO user VALUES ('$hostname','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
356
357           REPLACE INTO user VALUES ('localhost','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
358           REPLACE INTO user VALUES ('$hostname','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
359
360           INSERT INTO user VALUES ('localhost','mysql_logrotate','','N','N','N','N','N','N','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0);"
361         fi
362
363         if test ! -f $MYSQL_DATA_DIR/mysql/func.frm
364         then
365           c_f="$c_f CREATE TABLE func ("
366           c_f="$c_f   name char(64) DEFAULT '' NOT NULL,"
367           c_f="$c_f   ret tinyint(1) DEFAULT '0' NOT NULL,"
368           c_f="$c_f   dl char(128) DEFAULT '' NOT NULL,"
369           c_f="$c_f   type enum ('function','aggregate') NOT NULL,"
370           c_f="$c_f   PRIMARY KEY (name)"
371           c_f="$c_f )"
372           c_f="$c_f   comment='User defined functions';"
373         fi
374
375         if test ! -f $MYSQL_DATA_DIR/mysql/tables_priv.frm
376         then
377           c_t="$c_t CREATE TABLE tables_priv ("
378           c_t="$c_t   Host char(60) DEFAULT '' NOT NULL,"
379           c_t="$c_t   Db char(64) DEFAULT '' NOT NULL,"
380           c_t="$c_t   User char(16) DEFAULT '' NOT NULL,"
381           c_t="$c_t   Table_name char(60) DEFAULT '' NOT NULL,"
382           c_t="$c_t   Grantor char(77) DEFAULT '' NOT NULL,"
383           c_t="$c_t   Timestamp timestamp(14),"
384           c_t="$c_t   Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL,"
385           c_t="$c_t   Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,"
386           c_t="$c_t   PRIMARY KEY (Host,Db,User,Table_name),"
387           c_t="$c_t   KEY Grantor (Grantor)"
388           c_t="$c_t )"
389           c_t="$c_t   comment='Table privileges';"
390         fi
391
392         if test ! -f $MYSQL_DATA_DIR/mysql/columns_priv.frm
393         then
394           c_c="$c_c CREATE TABLE columns_priv ("
395           c_c="$c_c   Host char(60) DEFAULT '' NOT NULL,"
396           c_c="$c_c   Db char(60) DEFAULT '' NOT NULL,"
397           c_c="$c_c   User char(16) DEFAULT '' NOT NULL,"
398           c_c="$c_c   Table_name char(60) DEFAULT '' NOT NULL,"
399           c_c="$c_c   Column_name char(60) DEFAULT '' NOT NULL,"
400           c_c="$c_c   Timestamp timestamp(14),"
401           c_c="$c_c   Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,"
402           c_c="$c_c   PRIMARY KEY (Host,Db,User,Table_name,Column_name)"
403           c_c="$c_c )"
404           c_c="$c_c   comment='Column privileges';"
405         fi
406
407         mkdir -p "$MYSQL_DATA_DIR" > /dev/null 2>&1
408         chown -R mysql.mysql "$MYSQL_CLUSTER_DIR" > /dev/null 2>&1
409
410         if /usr/sbin/mysqld --bootstrap --skip-grant-tables \
411             --datadir=$MYSQL_DATA_DIR --user=$MYSQL_USER << END_OF_DATA
412 CREATE DATABASE mysql;
413 use mysql;
414 $c_d
415 $i_d
416
417 $c_h
418 $i_h
419
420 $c_u
421 $i_u
422
423 $c_f
424 $i_f
425
426 $c_t
427 $c_c
428 END_OF_DATA
429         then 
430             ok
431         cat << END_OF_MSG
432
433 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL USERS!
434 This is done (after starting database) with:
435
436 /usr/bin/mysqladmin -u mysql password 'password'
437 /usr/bin/mysqladmin -h $hostname -u mysql password 'password'
438 /usr/bin/mysqladmin -u mysql_logrotate password 'password'
439
440 NOTE: mysql_logrotate password should be placed to $MYSQL_CONFIG in
441 mysqladmin section. See the manual for more instructions.
442
443 NOTE: if you are using cluster ability of this package you need
444 to specify different socket for each cluster (see --socket option)
445
446 END_OF_MSG
447       else  
448             fail
449             cat << END_OF_MSG
450 Installation of grant tables FAILED!
451
452 Examine the logs in $MYSQL_DATA_DIR for more information.  You can
453 also try to start the mysqld demon with:
454
455 /usr/sbin/mysqld --skip-grant &
456
457 You can use the command line tool /usr/bin/mysql to connect to the mysql
458 database and look at the grant tables:
459
460 shell> /usr/bin/mysql -u mysql mysql
461 mysql> show tables
462
463 Try 'mysqld --help' if you have problems with paths. Setting on
464 logging in /etc/mysqld.conf gives you a log in /var/log/mysql/log that
465 may be helpful. The latest information about MySQL is available on the
466 web at http://www.mysql.com/.
467
468 Please check PLD ftp site for newer versions of this package.
469
470 Please consult the MySQL manual section: 'Problems running
471 mysql_install_db', and the manual section that describes problems on
472 your OS.  Another information source is the MySQL email archive.
473 Please check all of the above before mailing us!  And if you do mail
474 us, you MUST use the /usr/bin/mysqlbug script!  
475
476 END_OF_MSG
477
478         exit 1
479         fi
480 }
481
482 #
483 # End of useful functions.
484 #
485
486 RETVAL=0
487 case "$action" in
488   start)
489         if [ ! -f $MYSQL_ERRLOG ]; then
490                 touch $MYSQL_ERRLOG
491         fi
492         chown mysql.mysql $MYSQL_ERRLOG
493         chmod 640 $MYSQL_ERRLOG
494
495         for mysqldir in $DB_CLUSTERS; do
496                 mysqlstatus "$mysqldir"
497                 if [ "$MYSQL_STATUS" = "running" ]; then
498                         msg_already_running "MySQL $mysqldir"
499                 else
500                         mysqlstart "$mysqldir"
501                 fi
502         done
503         mysqlsubsys
504         ;;
505   stop)
506         for mysqldir in $DB_CLUSTERS; do
507                 mysqlstatus "$mysqldir"
508                 if [ "$MYSQL_STATUS" = "not running" ]; then
509                         msg_not_running "MySQL $mysqldir"
510                 else
511                         mysqlstop "$mysqldir"
512                 fi
513         done
514         mysqlsubsys
515         ;;
516   status)
517         for mysqldir in $DB_CLUSTERS; do
518                 mysqlstatus "$mysqldir"
519                 echo "MySQL cluster $mysqldir: $MYSQL_STATUS"
520         done
521         exit $?
522         ;;
523   restart|force-reload)
524         $0 stop
525         $0 start
526         exit $?
527         ;;
528   init)
529         for mysqldir in $DB_CLUSTERS; do
530                 mysqlinit "$mysqldir"
531         done
532         ;;
533   *)
534         msg_usage "$0 {start|stop|init|restart|force-reload|status}"
535         exit 3
536 esac
537
538 exit $RETVAL
This page took 0.069442 seconds and 4 git commands to generate.