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