]> git.pld-linux.org Git - packages/percona-server.git/blame - mysql.init
- add cvs version identifier
[packages/percona-server.git] / mysql.init
CommitLineData
53a28f77 1#!/bin/sh
59ba9905 2# $Id$
53a28f77 3#
350d9d8c 4# mysql A very fast and reliable SQL database engine
53a28f77 5#
350d9d8c 6# chkconfig: 2345 84 25
53a28f77 7#
350d9d8c 8# description: A very fast and reliable SQL database engine.
53a28f77 9#
53a28f77 10# Source function library
11. /etc/rc.d/init.d/functions
12
13# Get network config
14. /etc/sysconfig/network
15
aac2c31f
AM
16# Get service config
17if [ -f /etc/sysconfig/mysql ]; then
350d9d8c 18 . /etc/sysconfig/mysql
aac2c31f 19else
350d9d8c 20 nls "Error: %s not found" /etc/sysconfig/mysql
95b0575d 21 nls "%s can't be run." MySQL
350d9d8c
PG
22 exit 1
23fi
24
0146fae1 25if [ -n "$MYSQL_DB_CLUSTERS" ]; then
350d9d8c 26 nls "Warning: MYSQL_DB_CLUSTERS is set. It's obsolete. Use %s instead." /etc/mysql/clusters.conf
aac2c31f
AM
27fi
28
95b0575d 29if [ -f /etc/mysql/clusters.conf ]; then
0ca65658 30 MYSQL_DB_CLUSTERS=$(awk -F= '!/^#/{print $2}' /etc/mysql/clusters.conf)
95b0575d
ER
31 if [ -z "$MYSQL_DB_CLUSTERS" ]; then
32 nls "Warning: there are no configured clusters."
33 fi
0146fae1 34
95b0575d 35else
0146fae1 36 nls "Warning: Missing clusters config file %s" /etc/mysql/clusters.conf
95b0575d
ER
37 if [ -z "$MYSQL_DB_CLUSTERS" ]; then
38 nls "Warning: there are no configured clusters."
39 nls "Using default cluster /var/lib/mysql (compatibility mode)"
40 MYSQL_DB_CLUSTERS=/var/lib/mysql
41 fi
aac2c31f
AM
42fi
43
95b0575d 44
ac28c610 45# Check that networking is up
8eb71226 46if is_yes "${NETWORKING}"; then
213fc2f2 47 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
8eb71226 48 msg_network_down MySQL
49 exit 1
50 fi
51else
52 exit 0
e9ca44ab 53fi
54
aac2c31f
AM
55action="$1"
56
57# any db cluster as command line argument?
521444a9 58if [ $# -gt 1 ]; then
350d9d8c
PG
59 shift
60 # perform action for specified clusters only
30b2aa9a
ER
61 for a in "$@"; do
62 # try auto resolving from /etc/mysql/clusters.conf
63 if [[ "$a" != /* ]]; then
64 m=$(awk -va="$a" -F= 'substr($0, 1, length(a)) == a {print $1}' /etc/mysql/clusters.conf)
65 if [ -z "$m" ]; then
66 echo >&2 "Cluster name '$a' did not match anything!"
67 exit 1
68 fi
69 if [ $(echo "$m" | wc -l) -gt 1 ]; then
70 echo >&2 "Cluster name '$a' ambiguous:" $m
71 exit 1
72 fi
73 a=$(awk -va="$a" -F= 'substr($0, 1, length(a)) == a {print $2}' /etc/mysql/clusters.conf)
74 fi
75 DB_CLUSTERS="$DB_CLUSTERS $a"
76 done
aac2c31f 77else
350d9d8c 78 DB_CLUSTERS="$MYSQL_DB_CLUSTERS"
53a28f77 79fi
80
aac2c31f 81MYSQL_ERRLOG=/var/log/mysql/err
c85758f0
AM
82MYSQL_START_WAIT_TIME=${MYSQL_START_WAIT_TIME:-15}
83MYSQL_STOP_WAIT_TIME=${MYSQL_STOP_WAIT_TIME:-900}
aac2c31f
AM
84
85#
86# Useful functions.
87#
88
89#
90# check for mysql status
91#
92# arguments:
93# $1 - db cluster
c85758f0 94# $2 - start|stop
aac2c31f
AM
95#
96# sets variables:
c85758f0 97# MYSQL_STATUS = starting | running | not running | died
aac2c31f
AM
98# MYSQL_PID = pid of mysqld process
99#
100mysqlstatus() {
101 clusterdir="$1"
c85758f0
AM
102 mode="$2"
103
aac2c31f 104 mysqlgetconfig "$clusterdir"
d405c4eb 105
350d9d8c
PG
106 MYSQL_STATUS="not running"
107 MYSQL_PID="unknown"
c85758f0
AM
108 MYSQL_PIDFILE_PID=""
109 MYSQL_GREP_PID=""
aac2c31f 110
c85758f0
AM
111 if [ -f "$MYSQL_PIDFILE" ]; then
112 MYSQL_PIDFILE_PID=$(cat "$MYSQL_PIDFILE")
113 fi
114
115 if [ -n "$MYSQL_PIDFILE_PID" ]; then
116 MYSQL_PID=$MYSQL_PIDFILE_PID
117 if [ ! -d "/proc/$MYSQL_PID" ]; then
118 MYSQL_STATUS="died"
119 return
376ffa12 120 elif (grep -qa "$MYSQL_PIDFILE" /proc/$MYSQL_PID/cmdline 2> /dev/null); then
c85758f0
AM
121 MYSQL_STATUS="running"
122 return
123 fi
124 fi
6d3c5db5 125
c85758f0 126 if [ "$mode" = "start" ]; then
376ffa12 127 MYSQL_GREP_PID=$(grep -lE "^/usr/sbin/mysqld.*${MYSQL_PIDFILE}" /proc/[0-9]*/cmdline 2> /dev/null | awk -F "/" '{ print $3; exit; }')
c85758f0
AM
128 if [ -n "$MYSQL_GREP_PID" ]; then
129 MYSQL_PID=$MYSQL_GREP_PID
0ca65658 130 if grep -qa "$MYSQL_PIDFILE" /proc/$MYSQL_PID/cmdline 2> /dev/null; then
c85758f0
AM
131 if [ -f "$MYSQL_PIDFILE" ]; then
132 MYSQL_PIDFILE_PID=$(cat "$MYSQL_PIDFILE")
133 fi
134 if [ -n "$MYSQL_PIDFILE_PID" ]; then
135 MYSQL_PID=$MYSQL_PIDFILE_PID
136 MYSQL_STATUS="running"
137 return
138 else
139 MYSQL_STATUS="starting"
140 return
141 fi
142 fi
143 fi
6d3c5db5 144 fi
c85758f0
AM
145
146 # else default, "not running"
aac2c31f
AM
147}
148
149# get mysql configuration in variables
150# MYSQL_CONFIG MYSQL_DATA_DIR MYSQL_USER MYSQL_PIDFILE
151#
152# arguments
153# $1 - db cluster
154
155mysqlgetconfig() {
156 clusterdir="$1"
aac2c31f
AM
157
158 # emulate old behaviour if only one cluster specified
159 if [ "$clusterdir" = "$MYSQL_DB_CLUSTERS" -a "$clusterdir" = "/var/lib/mysql" -a -f /etc/mysqld.conf ]; then
0ca65658 160 MYSQL_RA_COMPAT=yes
aac2c31f 161 config_file=/etc/mysqld.conf
521444a9 162 else
0ca65658
ER
163 config=$(awk -F= -vclusterdir="$clusterdir" '!/^#/{ if (clusterdir == $2) print $1}' /etc/mysql/clusters.conf)
164 if [[ $config = /* ]]; then
d54e166d 165 config_file="$config"
fe2f6e01 166 elif [ -f "/etc/mysql/$config" ]; then
0ca65658 167 config_file="/etc/mysql/$config"
d54e166d
AM
168 else
169 config_file="$clusterdir/mysqld.conf"
170 fi
350d9d8c 171 fi
aac2c31f 172
0ca65658 173 MYSQL_CLUSTER_DIR="$clusterdir"
d405c4eb 174
521444a9 175 if [ -z "$config_file" ]; then
f9ad67df
PG
176 nls "Error: Can't find config file for %s cluster" "$clusterdir"
177 exit 6
178 else
0ca65658 179 MYSQL_CONFIG="$config_file"
f9ad67df 180 fi
d405c4eb 181
aac2c31f
AM
182 if [ ! -f "$config_file" ]; then
183 nls "Error: config file %s not found" "$config_file"
350d9d8c
PG
184 nls "MySQL can't be run. Did you initialize DB by doing \`$0 init'?"
185 exit 6
aac2c31f
AM
186 fi
187
188 eval `awk '
823c13f7
SZ
189/^[ \t]*\[.*\][ \t]*$/ {
190 match($0,/\[.*\]/)
0ca65658 191 section=substr($0, RSTART + 1, RSTART + RLENGTH - 3)
823c13f7 192}
0ca65658
ER
193section == "mysqld" && $2 ~ "=" {
194 if ($1 == "datadir") {
823c13f7 195 printf("MYSQL_DATA_DIR=%s;", $3)
0ca65658 196 } else if ($1 == "user") {
823c13f7 197 printf("MYSQL_USER=%s;", $3)
0ca65658 198 } else if ($1 == "pid-file") {
823c13f7 199 printf("MYSQL_PIDFILE=%s;", $3)
0ca65658 200 } else if ($1 == "socket") {
aac2c31f 201 printf("MYSQL_SOCKET=%s;", $3)
823c13f7
SZ
202 }
203}
aac2c31f 204' $config_file`
e9ca44ab 205
e9ca44ab 206
d54e166d 207 if is_yes "$MYSQL_RA_COMPAT"; then
350d9d8c 208 MYSQL_DATA_DIR_SUB=""
8ee1d59c 209 else
350d9d8c 210 MYSQL_DATA_DIR_SUB="/mysqldb"
8ee1d59c 211 fi
d405c4eb 212
8ee1d59c 213 if [ -z "$MYSQL_DATA_DIR" -o "$MYSQL_DATA_DIR" != "${clusterdir}${MYSQL_DATA_DIR_SUB}/db" ]; then
350d9d8c
PG
214 nls "Error: datadir specified in %s should be %s" "$config_file" "$clusterdir${MYSQL_DATA_DIR_SUB}/db"
215 nls " MySQL can't be run."
216 exit 6
8ee1d59c 217 fi
d405c4eb 218
8ee1d59c
AM
219 if [ -z "$MYSQL_PIDFILE" -o "$MYSQL_PIDFILE" != "$clusterdir${MYSQL_DATA_DIR_SUB}/mysql.pid" ]; then
220 nls "Error: pid-file specified in %s should be %s" "$config_file" "$clusterdir${MYSQL_DATA_DIR_SUB}/mysql.pid"
221 nls " MySQL can't be run."
222 exit 6
223 fi
e9ca44ab 224
aac2c31f 225 if [ -z $MYSQL_USER ]; then
350d9d8c
PG
226 echo "$(nls 'MySQL user not configured properly')"'!' >&2
227 nls "Edit %s and configure it." "$config_file" >&2
228 exit 6
860cd80c 229 fi
aac2c31f 230}
e9ca44ab 231
aac2c31f
AM
232# start mysql
233mysqlstart() {
234 clusterdir="$1"
235 mysqlgetconfig "$clusterdir"
236 if [ ! -d "$MYSQL_DATA_DIR/mysql" ]; then
237 nls "MySQL cluster %s not initialized." "$clusterdir"
238 nls "Try \`%s init %s' before start." "$0" "$clusterdir"
350d9d8c
PG
239 exit 6
240 fi
02e96f2e 241
aac2c31f
AM
242 msg_starting "MySQL $clusterdir"
243 busy
244 [ -z "$DEFAULT_SERVICE_RUN_NICE_LEVEL" ] && DEFAULT_SERVICE_RUN_NICE_LEVEL=0
c85758f0 245 rm -f "$MYSQL_PIDFILE"
c4fbabf1
ER
246
247 TMPDIR=/tmp nice -n ${SERVICE_RUN_NICE_LEVEL:-$DEFAULT_SERVICE_RUN_NICE_LEVEL} \
248 /usr/bin/setsid /usr/sbin/mysqld \
249 --defaults-file=$MYSQL_CONFIG \
250 --datadir=$MYSQL_DATA_DIR \
251 --pid-file=$MYSQL_PIDFILE $MYSQL_OPTIONS \
252 >> $MYSQL_ERRLOG 2>&1 &
253 pid=$!
254
255 sleep 0.1
c85758f0
AM
256 mysqlstatus "$clusterdir" start
257 # it takes longer for mysqld to start and create pidfile if it has to recover innodb transactions
258 if [ "$MYSQL_STATUS" = "starting" ]; then
c4fbabf1
ER
259 echo ""
260 show "Waiting for MySQL to start"
261 busy
262
263 # while the pid is running, mysql is starting up
264 # if the pidfile was created, it started up successfully
265 # if either case fails we break and report status
266 while true; do
267 [ -d /proc/$pid ] || break
c85758f0 268 [ -f "$MYSQL_PIDFILE" ] && break
c4fbabf1 269 sleep 0.2
c85758f0
AM
270 done
271 fi
272
273 mysqlstatus "$clusterdir" start
6d3c5db5 274 if [ "$MYSQL_STATUS" = "running" -a "$MYSQL_PID" != "unknown" ]; then
aac2c31f 275 ok
47fd5a6a 276 elif [ "$MYSQL_STATUS" = "died" ]; then
350d9d8c 277 RETVAL=1
47fd5a6a 278 died
aac2c31f
AM
279 else
280 RETVAL=1
281 fail
53a28f77 282 fi
aac2c31f
AM
283}
284
285# stop mysql
286mysqlstop() {
287 clusterdir="$1"
c85758f0 288 mysqlstatus "$clusterdir" stop
aac2c31f
AM
289 msg_stopping "MySQL $clusterdir"
290 busy
95b0575d 291
95b0575d 292 # try graceful shutdown -- send shutdown command
f07ac4b4 293 # requires mysql_logrotate user proper privs
465c110e 294 /usr/bin/mysqladmin --defaults-file=$MYSQL_CONFIG ${MYSQL_SOCKET:+--socket=$MYSQL_SOCKET} shutdown >/dev/null 2>&1
c85758f0 295 mysqlstatus "$clusterdir" stop
95b0575d 296
c85758f0
AM
297 if [ "$MYSQL_PID" != "unknown" ]; then
298 kill -TERM "$MYSQL_PID" 2> /dev/null
299 for nr in $(seq 1 $(($MYSQL_STOP_WAIT_TIME*10))); do
300 [ -d "/proc/$MYSQL_PID" ] || break
301 sleep 0.1
302 done
303 fi
304
305 mysqlstatus "$clusterdir" stop
47fd5a6a 306 if [ "$MYSQL_STATUS" = "died" ]; then
350d9d8c 307 died
c85758f0 308 elif [ "$MYSQL_STATUS" = "running" -o "$MYSQL_STATUS" = "starting" ]; then
aac2c31f 309 fail
b92e5cd1 310 else
aac2c31f 311 ok
b92e5cd1 312 fi
aac2c31f
AM
313}
314
315#
316# check for running mysql instances; if any instance is running then
317# create subsys lock file
318#
319mysqlsubsys() {
350d9d8c
PG
320 # check for every defined db cluster in sysconfig file
321 for mysqldir in $DB_CLUSTERS; do
322 mysqlstatus "$mysqldir"
323 if [ "$MYSQL_STATUS" = "running" ]; then
324 touch /var/lock/subsys/mysql
325 return
326 fi
327 done
328 rm -f /var/lock/subsys/mysql
aac2c31f
AM
329}
330
331mysqlinit() {
332 clusterdir="$1"
8ee1d59c
AM
333
334 if [ -f /etc/mysqld.conf ]; then
350d9d8c
PG
335 nls "Running in \`no cluster compat' mode: can't initialize database."
336 nls "Move /etc/mysqld.conf away and rerun \`$0 init' (new config will be in $clusterdir)."
337 exit 1
8ee1d59c
AM
338 fi
339
521444a9
AM
340 if [ -f "$clusterdir/mysqld.conf" ]; then
341 mysqlgetconfig "$clusterdir"
342 else
343 MYSQL_USER="mysql"
344 MYSQL_CLUSTER_DIR="$clusterdir"
345 MYSQL_DATA_DIR="$clusterdir/mysqldb/db"
346 MYSQL_PIDFILE="$clusterdir/mysqldb/mysql.pid"
347 MYSQL_SOCKET="$clusterdir/mysqldb/mysql.sock"
fe98cc4a
ER
348
349 # this $MYSQL_CONFIG will be created later
350 MYSQL_CONFIG="$MYSQL_CLUSTER_DIR/mysqld.conf"
521444a9 351 fi
aac2c31f 352
d460d24d 353 show "Initializing cluster %s" "$clusterdir"; echo
aac2c31f 354
573e1dcc 355 # Check if not exist init database
e9ca44ab 356 if [ -d "$MYSQL_DATA_DIR/mysql" ]; then
c70c8930 357 nls "Seems that database is initialized now. Remove by hand %s" "$MYSQL_DATA_DIR/mysql"
b92e5cd1 358 nls "before initializing database."
aac2c31f
AM
359 nls "For now skipping cluster %s." "$clusterdir"
360 return
e9ca44ab 361 fi
362
aac2c31f 363 show "Creating privilege mysql tables for $MYSQL_DATA_DIR"
e9ca44ab 364 busy
d405c4eb
JB
365 TMP=/tmp TMPDIR=/tmp
366
a5d83bf8
ER
367 # Install this in the user table, too
368 hostname="`hostname --fqdn 2> /dev/null | tr -d '[:space:]'`"
369 [ -z "$hostname" ] && hostname="localhost-unknown"
370
371 # Check if hostname is valid
372 if [ -z "$hostname" ]; then
373 deltext
374 fail
375 nls "Sorry, the host name is not configured."
376 nls "Please configure the 'hostname' command to return a hostname."
377 exit 1
378 elif ! hostname -i >/dev/null 2>&1; then
379 deltext
380 fail
381 nls "Sorry, the host '%s' could not be looked up." "$hostname"
382 nls "Please configure the 'hostname' command to return a correct hostname."
383 exit 1
384 fi
385
c4fbabf1 386 mkdir -p "$MYSQL_DATA_DIR" > /dev/null 2>&1
f5d63301
AM
387 # Using mysql:mysql for MYSQL_CLUSTER_DIR is creating SECURITY hole, root:root is proper
388 chown root:root "$MYSQL_CLUSTER_DIR"
389 chown mysql:mysql "$MYSQL_CLUSTER_DIR/mysqldb" "$MYSQL_DATA_DIR" > /dev/null 2>&1
653cf157 390 chmod 751 "$MYSQL_CLUSTER_DIR" "$MYSQL_CLUSTER_DIR/mysqldb"
444f9f3c
AM
391
392 if [ -f /usr/share/mysql/mysqld.conf -a ! -f "$MYSQL_CLUSTER_DIR/mysqld.conf" ]; then
b6369c60
ER
393 sed -e "
394 s#\(datadir.*\)=.*#\1= $MYSQL_DATA_DIR#g;
395 s#\(pid-file.*\)=.*#\1= $MYSQL_PIDFILE#g;
396 s#\(socket.*\)=.*#\1= $MYSQL_SOCKET#g;
397 s#@clusterdir@#$MYSQL_CLUSTER_DIR#g;
398 " /usr/share/mysql/mysqld.conf > "$MYSQL_CLUSTER_DIR/mysqld.conf"
54a1f368 399 chown root:root "$MYSQL_CLUSTER_DIR/mysqld.conf"
444f9f3c
AM
400 chmod 640 "$MYSQL_CLUSTER_DIR/mysqld.conf"
401 fi
cc4d3f78 402
a08fc1eb 403 if [ ! -e /var/lib/mysql/mysql.sock ] || [ -L /var/lib/mysql/mysql.sock ] && [ -z "$(readlink /var/lib/mysql/mysql.sock)" ]; then
0ca65658 404 sock=${MYSQL_SOCKET#/var/lib/mysql/} # make it relative if possible
5fe13e55 405 ln -s "$sock" /var/lib/mysql/mysql.sock
cc4d3f78 406 fi
aac2c31f 407
b9c4f95d 408 cat > $MYSQL_DATA_DIR/mysql-init.sql <<-EOF
bb39d376 409 CREATE DATABASE mysql;
4444725f 410 use mysql;
ac02fcd5
ER
411 $(cat /usr/share/mysql/mysql_system_tables.sql)
412 $(sed -e "s,@@hostname,'$hostname',g;s,'root','mysql',g" /usr/share/mysql/mysql_system_tables_data.sql)
b9c4f95d
ER
413EOF
414
415 ok=0
416 /usr/sbin/mysqld --bootstrap --skip-grant-tables \
c4fbabf1
ER
417 --datadir=$MYSQL_DATA_DIR --user=$MYSQL_USER \
418 --slave-load-tmpdir=$MYSQL_DATA_DIR --tmpdir=$MYSQL_DATA_DIR < \
dc7a177f 419 $MYSQL_DATA_DIR/mysql-init.sql 2>> /var/log/mysql/err && ok=1
5062ac41 420 [ -f $MYSQL_DATA_DIR/mysql/host.frm ] || ok=0
c4fbabf1 421
b9c4f95d
ER
422 if [ "$ok" = 1 ]; then
423 rm -f $MYSQL_DATA_DIR/mysql-init.sql
e9ca44ab 424 ok
aac2c31f 425 cat << END_OF_MSG
6a46c354 426
427PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL USERS!
81e0333c 428This is done (after starting database; press enter when asked for password) with:
6a46c354 429
dc7a177f
ER
430mysqladmin -u mysql -S $MYSQL_SOCKET password 'password'
431mysqladmin -h $hostname -u mysql -S $MYSQL_SOCKET password 'password'
432mysqladmin -u mysql_logrotate -S $MYSQL_SOCKET password 'password'
6a46c354 433
aac2c31f 434NOTE: mysql_logrotate password should be placed to $MYSQL_CONFIG in
6a46c354 435mysqladmin section. See the manual for more instructions.
e9ca44ab 436
16bf26ff 437If you want to use new help tables in MySQL 4.1.x then you'll need to import the help data:
dc7a177f 438mysql -u mysql -p -S $MYSQL_SOCKET mysql < /usr/share/mysql/fill_help_tables.sql
16bf26ff 439
e9ca44ab 440END_OF_MSG
d405c4eb 441 else
e9ca44ab 442 fail
443 cat << END_OF_MSG
444Installation of grant tables FAILED!
445
6df74636
ER
446The initialization SQL script was preserved at $MYSQL_DATA_DIR/mysql-init.sql
447
b9c4f95d
ER
448Examine the logs in /var/log/mysql for more information. You can
449also try to start the mysqld daemon with:
e9ca44ab 450
451/usr/sbin/mysqld --skip-grant &
452
dc7a177f 453You can use the command line tool mysql to connect to the mysql
e9ca44ab 454database and look at the grant tables:
455
dc7a177f 456shell> mysql -u mysql mysql
e9ca44ab 457mysql> show tables
458
459Try 'mysqld --help' if you have problems with paths. Setting on
460logging in /etc/mysqld.conf gives you a log in /var/log/mysql/log that
461may be helpful. The latest information about MySQL is available on the
78b16243 462web at http://www.mysql.com/.
e9ca44ab 463
a3eb9e7b 464Please check PLD Linux ftp site for newer versions of this package.
e9ca44ab 465
466Please consult the MySQL manual section: 'Problems running
467mysql_install_db', and the manual section that describes problems on
468your OS. Another information source is the MySQL email archive.
469Please check all of the above before mailing us! And if you do mail
dc7a177f 470us, you MUST use the mysqlbug script!
e9ca44ab 471
472END_OF_MSG
473
aac2c31f
AM
474 exit 1
475 fi
476}
477
478#
479# End of useful functions.
480#
481
323256af 482start() {
aac2c31f
AM
483 if [ ! -f $MYSQL_ERRLOG ]; then
484 touch $MYSQL_ERRLOG
823c13f7 485 fi
54a1f368 486 chown mysql:mysql $MYSQL_ERRLOG
aac2c31f
AM
487 chmod 640 $MYSQL_ERRLOG
488
489 for mysqldir in $DB_CLUSTERS; do
c85758f0 490 mysqlstatus "$mysqldir" start
aac2c31f
AM
491 if [ "$MYSQL_STATUS" = "running" ]; then
492 msg_already_running "MySQL $mysqldir"
493 else
494 mysqlstart "$mysqldir"
495 fi
496 done
497 mysqlsubsys
323256af
ER
498}
499
500stop() {
aac2c31f 501 for mysqldir in $DB_CLUSTERS; do
c85758f0 502 mysqlstatus "$mysqldir" stop
aac2c31f
AM
503 if [ "$MYSQL_STATUS" = "not running" ]; then
504 msg_not_running "MySQL $mysqldir"
505 else
506 mysqlstop "$mysqldir"
507 fi
508 done
509 mysqlsubsys
323256af
ER
510}
511
512RETVAL=0
513case "$action" in
514 start)
515 start
516 ;;
517 stop)
518 stop
aac2c31f
AM
519 ;;
520 status)
521 for mysqldir in $DB_CLUSTERS; do
522 mysqlstatus "$mysqldir"
2bac5c2d 523 if [ "$MYSQL_STATUS" = "running" ]; then
27698ac1 524 show "MySQL cluster %s, PID %s" "$mysqldir" "$MYSQL_PID"
2bac5c2d
ER
525 progress "$MYSQL_STATUS"
526 else
27698ac1 527 show "MySQL cluster %s" "$mysqldir"
2bac5c2d
ER
528 progress "$MYSQL_STATUS" "$CFAIL"
529 fi
530 echo
aac2c31f
AM
531 done
532 exit $?
533 ;;
534 restart|force-reload)
323256af
ER
535 stop
536 start
aac2c31f
AM
537 ;;
538 init)
539 for mysqldir in $DB_CLUSTERS; do
540 mysqlinit "$mysqldir"
541 done
60bd204c 542 exit $?
573e1dcc 543 ;;
6fb7a89b
AM
544 flush-logs)
545 for mysqldir in $DB_CLUSTERS; do
546 mysqlgetconfig "$mysqldir"
7c37979d
ER
547 # just if mysqld is really running
548 if /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" ping >/dev/null 2>&1; then
549 /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" flush-logs
550 fi
6fb7a89b 551 done
6fb7a89b 552 ;;
53a28f77 553 *)
02e96f2e 554 msg_usage "$0 {start|stop|init|restart|force-reload|status}"
555 exit 3
53a28f77 556esac
40c36bca 557
ee9b6a50 558exit $RETVAL
350d9d8c
PG
559
560# vi: shiftwidth=4 tabstop=4
This page took 0.187592 seconds and 4 git commands to generate.