]> git.pld-linux.org Git - packages/percona-server.git/blame - mysql.init
- kill Icon: field (support for these is obsolete says jbj)
[packages/percona-server.git] / mysql.init
CommitLineData
53a28f77 1#!/bin/sh
2#
350d9d8c 3# mysql A very fast and reliable SQL database engine
53a28f77 4#
350d9d8c 5# chkconfig: 2345 84 25
53a28f77 6#
350d9d8c 7# description: A very fast and reliable SQL database engine.
53a28f77 8#
53a28f77 9# Source function library
10. /etc/rc.d/init.d/functions
11
12# Get network config
13. /etc/sysconfig/network
14
aac2c31f
AM
15# Get service config
16if [ -f /etc/sysconfig/mysql ]; then
350d9d8c 17 . /etc/sysconfig/mysql
aac2c31f 18else
350d9d8c 19 nls "Error: %s not found" /etc/sysconfig/mysql
95b0575d 20 nls "%s can't be run." MySQL
350d9d8c
PG
21 exit 1
22fi
23
0146fae1 24if [ -n "$MYSQL_DB_CLUSTERS" ]; then
350d9d8c 25 nls "Warning: MYSQL_DB_CLUSTERS is set. It's obsolete. Use %s instead." /etc/mysql/clusters.conf
aac2c31f
AM
26fi
27
95b0575d
ER
28if [ -f /etc/mysql/clusters.conf ]; then
29 MYSQL_DB_CLUSTERS=$(grep -v '^#' /etc/mysql/clusters.conf | cut -s -f 2 -d '=')
30 if [ -z "$MYSQL_DB_CLUSTERS" ]; then
31 nls "Warning: there are no configured clusters."
32 fi
0146fae1 33
95b0575d 34else
0146fae1 35 nls "Warning: Missing clusters config file %s" /etc/mysql/clusters.conf
95b0575d
ER
36 if [ -z "$MYSQL_DB_CLUSTERS" ]; then
37 nls "Warning: there are no configured clusters."
38 nls "Using default cluster /var/lib/mysql (compatibility mode)"
39 MYSQL_DB_CLUSTERS=/var/lib/mysql
40 fi
aac2c31f
AM
41fi
42
95b0575d 43
ac28c610 44# Check that networking is up
8eb71226 45if is_yes "${NETWORKING}"; then
213fc2f2 46 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
8eb71226 47 msg_network_down MySQL
48 exit 1
49 fi
50else
51 exit 0
e9ca44ab 52fi
53
aac2c31f
AM
54action="$1"
55
56# any db cluster as command line argument?
521444a9 57if [ $# -gt 1 ]; then
350d9d8c
PG
58 shift
59 # perform action for specified clusters only
60 DB_CLUSTERS="$@"
aac2c31f 61else
350d9d8c 62 DB_CLUSTERS="$MYSQL_DB_CLUSTERS"
53a28f77 63fi
64
aac2c31f
AM
65MYSQL_ERRLOG=/var/log/mysql/err
66
67#
68# Useful functions.
69#
70
71#
72# check for mysql status
73#
74# arguments:
75# $1 - db cluster
76#
77# sets variables:
95b0575d 78# MYSQL_STATUS = running | not running | died
aac2c31f
AM
79# MYSQL_PID = pid of mysqld process
80#
81mysqlstatus() {
82 clusterdir="$1"
83 mysqlgetconfig "$clusterdir"
d405c4eb 84
350d9d8c
PG
85 MYSQL_STATUS="not running"
86 MYSQL_PID="unknown"
aac2c31f
AM
87
88 [ -f "$MYSQL_PIDFILE" ] && MYSQL_PID=$(cat "$MYSQL_PIDFILE")
6d3c5db5
AM
89
90 if [ ! -d "/proc/$MYSQL_PID" -a "$MYSQL_PID" != "unknown" ]; then
350d9d8c 91 MYSQL_STATUS="died"
6d3c5db5 92 elif [ -d "/proc/$MYSQL_PID" ]; then
4487c065 93 grep -qa "$MYSQL_PIDFILE" /proc/$MYSQL_PID/cmdline && MYSQL_STATUS="running" || MYSQL_STATUS="not running"
6d3c5db5 94 fi
aac2c31f
AM
95}
96
97# get mysql configuration in variables
98# MYSQL_CONFIG MYSQL_DATA_DIR MYSQL_USER MYSQL_PIDFILE
99#
100# arguments
101# $1 - db cluster
102
103mysqlgetconfig() {
104 clusterdir="$1"
aac2c31f
AM
105
106 # emulate old behaviour if only one cluster specified
107 if [ "$clusterdir" = "$MYSQL_DB_CLUSTERS" -a "$clusterdir" = "/var/lib/mysql" -a -f /etc/mysqld.conf ]; then
d54e166d 108 MYSQL_RA_COMPAT=yes; export MYSQL_RA_COMPAT
aac2c31f 109 config_file=/etc/mysqld.conf
521444a9 110 else
d54e166d 111 # TODO: convert this piece of crap to awk
3cc8d16e 112 config=`grep -v "^#" /etc/mysql/clusters.conf | grep "${clusterdir}$" | cut -s -f 1 -d '='`
e9dba700 113 if echo "$config" | grep -q '^/'; then
d54e166d 114 config_file="$config"
fe2f6e01 115 elif [ -f "/etc/mysql/$config" ]; then
d4abea95 116 config_file=/etc/mysql/$config
d54e166d
AM
117 else
118 config_file="$clusterdir/mysqld.conf"
119 fi
350d9d8c 120 fi
aac2c31f
AM
121
122 MYSQL_CLUSTER_DIR="$clusterdir"; export MYSQL_CLUSTER_DIR
d405c4eb 123
521444a9 124 if [ -z "$config_file" ]; then
f9ad67df
PG
125 nls "Error: Can't find config file for %s cluster" "$clusterdir"
126 exit 6
127 else
128 MYSQL_CONFIG="$config_file"; export MYSQL_CONFIG
129 fi
d405c4eb 130
aac2c31f
AM
131 if [ ! -f "$config_file" ]; then
132 nls "Error: config file %s not found" "$config_file"
350d9d8c
PG
133 nls "MySQL can't be run. Did you initialize DB by doing \`$0 init'?"
134 exit 6
aac2c31f
AM
135 fi
136
137 eval `awk '
823c13f7
SZ
138/^[ \t]*\[.*\][ \t]*$/ {
139 match($0,/\[.*\]/)
140 section=substr($0,RSTART+1,RSTART+RLENGTH-3)
141}
142section=="mysqld" && $2~"=" {
143 if ($1=="datadir") {
144 printf("MYSQL_DATA_DIR=%s;", $3)
145 } else if ($1=="user") {
146 printf("MYSQL_USER=%s;", $3)
147 } else if ($1=="pid-file") {
148 printf("MYSQL_PIDFILE=%s;", $3)
aac2c31f
AM
149 } else if ($1=="socket") {
150 printf("MYSQL_SOCKET=%s;", $3)
823c13f7
SZ
151 }
152}
153END {
aac2c31f 154 print "export MYSQL_DATA_DIR MYSQL_USER MYSQL_PIDFILE MYSQL_SOCKET"
823c13f7 155}
aac2c31f 156' $config_file`
e9ca44ab 157
e9ca44ab 158
d54e166d 159 if is_yes "$MYSQL_RA_COMPAT"; then
350d9d8c 160 MYSQL_DATA_DIR_SUB=""
8ee1d59c 161 else
350d9d8c 162 MYSQL_DATA_DIR_SUB="/mysqldb"
8ee1d59c 163 fi
d405c4eb 164
8ee1d59c 165 if [ -z "$MYSQL_DATA_DIR" -o "$MYSQL_DATA_DIR" != "${clusterdir}${MYSQL_DATA_DIR_SUB}/db" ]; then
350d9d8c
PG
166 nls "Error: datadir specified in %s should be %s" "$config_file" "$clusterdir${MYSQL_DATA_DIR_SUB}/db"
167 nls " MySQL can't be run."
168 exit 6
8ee1d59c 169 fi
d405c4eb 170
8ee1d59c
AM
171 if [ -z "$MYSQL_PIDFILE" -o "$MYSQL_PIDFILE" != "$clusterdir${MYSQL_DATA_DIR_SUB}/mysql.pid" ]; then
172 nls "Error: pid-file specified in %s should be %s" "$config_file" "$clusterdir${MYSQL_DATA_DIR_SUB}/mysql.pid"
173 nls " MySQL can't be run."
174 exit 6
175 fi
e9ca44ab 176
aac2c31f 177 if [ -z $MYSQL_USER ]; then
350d9d8c
PG
178 echo "$(nls 'MySQL user not configured properly')"'!' >&2
179 nls "Edit %s and configure it." "$config_file" >&2
180 exit 6
860cd80c 181 fi
aac2c31f 182}
e9ca44ab 183
aac2c31f
AM
184# start mysql
185mysqlstart() {
186 clusterdir="$1"
187 mysqlgetconfig "$clusterdir"
188 if [ ! -d "$MYSQL_DATA_DIR/mysql" ]; then
189 nls "MySQL cluster %s not initialized." "$clusterdir"
190 nls "Try \`%s init %s' before start." "$0" "$clusterdir"
350d9d8c
PG
191 exit 6
192 fi
02e96f2e 193
aac2c31f
AM
194 msg_starting "MySQL $clusterdir"
195 busy
196 [ -z "$DEFAULT_SERVICE_RUN_NICE_LEVEL" ] && DEFAULT_SERVICE_RUN_NICE_LEVEL=0
54a1f368 197 TMPDIR=/tmp nice -n ${SERVICE_RUN_NICE_LEVEL:-$DEFAULT_SERVICE_RUN_NICE_LEVEL} /usr/bin/setsid /usr/sbin/mysqld --defaults-file=$MYSQL_CONFIG --datadir=$MYSQL_DATA_DIR --pid-file=$MYSQL_PIDFILE >> $MYSQL_ERRLOG 2>&1 &
653cf157 198 sleep 2
aac2c31f 199 mysqlstatus "$clusterdir"
6d3c5db5 200 if [ "$MYSQL_STATUS" = "running" -a "$MYSQL_PID" != "unknown" ]; then
aac2c31f 201 ok
47fd5a6a 202 elif [ "$MYSQL_STATUS" = "died" ]; then
350d9d8c 203 RETVAL=1
47fd5a6a 204 died
aac2c31f
AM
205 else
206 RETVAL=1
207 fail
53a28f77 208 fi
aac2c31f
AM
209}
210
211# stop mysql
212mysqlstop() {
213 clusterdir="$1"
214 mysqlstatus "$clusterdir"
215 msg_stopping "MySQL $clusterdir"
216 busy
95b0575d 217
95b0575d 218 # try graceful shutdown -- send shutdown command
f07ac4b4 219 # requires mysql_logrotate user proper privs
465c110e 220 /usr/bin/mysqladmin --defaults-file=$MYSQL_CONFIG ${MYSQL_SOCKET:+--socket=$MYSQL_SOCKET} shutdown >/dev/null 2>&1
95b0575d
ER
221 mysqlstatus "$clusterdir"
222
d3366208 223 [ "$MYSQL_PID" != "unknown" ] && kill -TERM "$MYSQL_PID" 2> /dev/null
4f1348d3 224 # 15 seconds
c501e7c3 225 for nr in $(seq 1 15); do
aac2c31f
AM
226 [ -d "/proc/$MYSQL_PID" ] && sleep 1
227 done
228 mysqlstatus "$clusterdir"
47fd5a6a 229 if [ "$MYSQL_STATUS" = "died" ]; then
350d9d8c 230 died
47fd5a6a 231 elif [ "$MYSQL_STATUS" = "running" ]; then
aac2c31f 232 fail
b92e5cd1 233 else
aac2c31f 234 ok
b92e5cd1 235 fi
95b0575d
ER
236
237 # FIXME: should let mysqld remove pid by itself?
aac2c31f
AM
238 rm -f "$MYSQL_PIDFILE"
239}
240
241#
242# check for running mysql instances; if any instance is running then
243# create subsys lock file
244#
245mysqlsubsys() {
350d9d8c
PG
246 # check for every defined db cluster in sysconfig file
247 for mysqldir in $DB_CLUSTERS; do
248 mysqlstatus "$mysqldir"
249 if [ "$MYSQL_STATUS" = "running" ]; then
250 touch /var/lock/subsys/mysql
251 return
252 fi
253 done
254 rm -f /var/lock/subsys/mysql
aac2c31f
AM
255}
256
257mysqlinit() {
258 clusterdir="$1"
8ee1d59c
AM
259
260 if [ -f /etc/mysqld.conf ]; then
350d9d8c
PG
261 nls "Running in \`no cluster compat' mode: can't initialize database."
262 nls "Move /etc/mysqld.conf away and rerun \`$0 init' (new config will be in $clusterdir)."
263 exit 1
8ee1d59c
AM
264 fi
265
521444a9
AM
266 if [ -f "$clusterdir/mysqld.conf" ]; then
267 mysqlgetconfig "$clusterdir"
268 else
269 MYSQL_USER="mysql"
270 MYSQL_CLUSTER_DIR="$clusterdir"
271 MYSQL_DATA_DIR="$clusterdir/mysqldb/db"
272 MYSQL_PIDFILE="$clusterdir/mysqldb/mysql.pid"
273 MYSQL_SOCKET="$clusterdir/mysqldb/mysql.sock"
fe98cc4a
ER
274
275 # this $MYSQL_CONFIG will be created later
276 MYSQL_CONFIG="$MYSQL_CLUSTER_DIR/mysqld.conf"
521444a9 277 fi
aac2c31f
AM
278
279 nls "Initializing cluster %s" "$clusterdir"
280
573e1dcc 281 # Check if not exist init database
e9ca44ab 282 if [ -d "$MYSQL_DATA_DIR/mysql" ]; then
c70c8930 283 nls "Seems that database is initialized now. Remove by hand %s" "$MYSQL_DATA_DIR/mysql"
b92e5cd1 284 nls "before initializing database."
aac2c31f
AM
285 nls "For now skipping cluster %s." "$clusterdir"
286 return
e9ca44ab 287 fi
288
aac2c31f 289 show "Creating privilege mysql tables for $MYSQL_DATA_DIR"
e9ca44ab 290 busy
d405c4eb
JB
291 TMP=/tmp TMPDIR=/tmp
292
aac2c31f 293
ac28c610 294 # Install this in the user table, too
653cf157
AM
295 hostname="`hostname --fqdn 2> /dev/null | tr -d '[:space:]'`"
296 [ -z "$hostname" ] && hostname="localhost-unknown"
d405c4eb 297
e9ca44ab 298 # Check if hostname is valid
299 if [ -z "$hostname" ]; then
300 deltext
b92e5cd1 301 fail
302 nls "Sorry, the host name is not configured."
303 nls "Please configure the 'hostname' command to return a hostname."
304 exit 1
d405c4eb 305 elif ! hostname -i >/dev/null 2>&1; then
b92e5cd1 306 deltext
307 fail
308 nls "Sorry, the host '%s' could not be looked up." "$hostname"
309 nls "Please configure the 'hostname' command to return a correct hostname."
e9ca44ab 310 exit 1
e9ca44ab 311 fi
312
823c13f7 313 # Initialize variables
73b2386d
AM
314 c_d="" i_d="" c_ht="" c_tz=""
315 c_h="" i_h="" c_hc="" c_tzt=""
316 c_u="" i_u="" c_hk="" c_tztt=""
317 c_f="" i_f="" c_hr="" c_tzls=""
f70373f8
AM
318 c_t="" c_c="" c_tzn="" c_p=""
319 c_pp=""
02e96f2e 320
823c13f7 321 # Check for old tables
653cf157 322 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/db.frm
823c13f7
SZ
323 then
324 # mysqld --bootstrap wants one command/line
325 c_d="$c_d CREATE TABLE db ("
326 c_d="$c_d Host char(60) DEFAULT '' NOT NULL,"
327 c_d="$c_d Db char(64) DEFAULT '' NOT NULL,"
328 c_d="$c_d User char(16) DEFAULT '' NOT NULL,"
f70373f8
AM
329 c_d="$c_d Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
330 c_d="$c_d Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
331 c_d="$c_d Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
332 c_d="$c_d Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
333 c_d="$c_d Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
334 c_d="$c_d Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
335 c_d="$c_d Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
336 c_d="$c_d References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
337 c_d="$c_d Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
338 c_d="$c_d Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
339 c_d="$c_d Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
340 c_d="$c_d Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
341 c_d="$c_d Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
342 c_d="$c_d Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
343 c_d="$c_d Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
344 c_d="$c_d Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
345 c_d="$c_d Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
823c13f7
SZ
346 c_d="$c_d PRIMARY KEY Host (Host,Db,User),"
347 c_d="$c_d KEY User (User)"
348 c_d="$c_d )"
62edb21b 349 c_d="$c_d CHARACTER SET utf8 COLLATE utf8_bin"
823c13f7 350 c_d="$c_d comment='Database privileges';"
02e96f2e 351
f70373f8
AM
352 i_d="INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N');
353 INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N');"
98f16f2d 354
823c13f7 355 fi
02e96f2e 356
653cf157 357 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/host.frm
823c13f7
SZ
358 then
359 c_h="$c_h CREATE TABLE host ("
360 c_h="$c_h Host char(60) DEFAULT '' NOT NULL,"
361 c_h="$c_h Db char(64) DEFAULT '' NOT NULL,"
f70373f8
AM
362 c_h="$c_h Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
363 c_h="$c_h Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
364 c_h="$c_h Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
365 c_h="$c_h Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
366 c_h="$c_h Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
367 c_h="$c_h Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
368 c_h="$c_h Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
369 c_h="$c_h References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
370 c_h="$c_h Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
371 c_h="$c_h Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
372 c_h="$c_h Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
373 c_h="$c_h Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
374 c_h="$c_h Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
375 c_h="$c_h Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
376 c_h="$c_h Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
377 c_h="$c_h Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
378 c_h="$c_h Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
823c13f7
SZ
379 c_h="$c_h PRIMARY KEY Host (Host,Db)"
380 c_h="$c_h )"
62edb21b 381 c_h="$c_h CHARACTER SET utf8 COLLATE utf8_bin"
823c13f7
SZ
382 c_h="$c_h comment='Host privileges; Merged with database privileges';"
383 fi
02e96f2e 384
653cf157 385 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/user.frm
823c13f7
SZ
386 then
387 c_u="$c_u CREATE TABLE user ("
f70373f8
AM
388 c_u="$c_u Host char(60) binary DEFAULT '' NOT NULL,"
389 c_u="$c_u User char(16) binary DEFAULT '' NOT NULL,"
390 c_u="$c_u Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL,"
391 c_u="$c_u Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
392 c_u="$c_u Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
393 c_u="$c_u Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
394 c_u="$c_u Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
395 c_u="$c_u Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
396 c_u="$c_u Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
397 c_u="$c_u Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
398 c_u="$c_u Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
399 c_u="$c_u Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
400 c_u="$c_u File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
401 c_u="$c_u Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
402 c_u="$c_u References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
403 c_u="$c_u Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
404 c_u="$c_u Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
405 c_u="$c_u Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
406 c_u="$c_u Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
407 c_u="$c_u Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
408 c_u="$c_u Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
409 c_u="$c_u Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
410 c_u="$c_u Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
411 c_u="$c_u Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
412 c_u="$c_u Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
413 c_u="$c_u Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
414 c_u="$c_u Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
415 c_u="$c_u Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
416 c_u="$c_u Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
417 c_u="$c_u ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL,"
95e4baaf
AM
418 c_u="$c_u ssl_cipher BLOB NOT NULL,"
419 c_u="$c_u x509_issuer BLOB NOT NULL,"
420 c_u="$c_u x509_subject BLOB NOT NULL,"
421 c_u="$c_u max_questions int(11) unsigned DEFAULT 0 NOT NULL,"
422 c_u="$c_u max_updates int(11) unsigned DEFAULT 0 NOT NULL,"
423 c_u="$c_u max_connections int(11) unsigned DEFAULT 0 NOT NULL,"
f70373f8 424 c_u="$c_u max_user_connections int(11) unsigned DEFAULT 0 NOT NULL,"
823c13f7 425 c_u="$c_u PRIMARY KEY Host (Host,User)"
f70373f8 426 c_u="$c_u ) engine=MyISAM"
62edb21b 427 c_u="$c_u CHARACTER SET utf8 COLLATE utf8_bin"
823c13f7 428 c_u="$c_u comment='Users and global privileges';"
02e96f2e 429
95e4baaf 430
f70373f8
AM
431 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','Y','Y','Y','Y','Y','','','','',0,0,0,0);
432 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','Y','Y','Y','Y','Y','','','','',0,0,0,0);
433 INSERT INTO user (host,user) values ('localhost','');
434 INSERT INTO user (host,user) values ('$hostname','');
435 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','N','N','N','N','N','','','','',0,0,0,0);"
823c13f7 436 fi
02e96f2e 437
653cf157 438 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/func.frm
823c13f7
SZ
439 then
440 c_f="$c_f CREATE TABLE func ("
441 c_f="$c_f name char(64) DEFAULT '' NOT NULL,"
442 c_f="$c_f ret tinyint(1) DEFAULT '0' NOT NULL,"
443 c_f="$c_f dl char(128) DEFAULT '' NOT NULL,"
f70373f8 444 c_f="$c_f type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL,"
823c13f7
SZ
445 c_f="$c_f PRIMARY KEY (name)"
446 c_f="$c_f )"
62edb21b 447 c_f="$c_f CHARACTER SET utf8 COLLATE utf8_bin"
73b2386d 448 c_f="$c_f comment='User defined functions';"
823c13f7 449 fi
02e96f2e 450
653cf157 451 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/tables_priv.frm
823c13f7
SZ
452 then
453 c_t="$c_t CREATE TABLE tables_priv ("
454 c_t="$c_t Host char(60) DEFAULT '' NOT NULL,"
455 c_t="$c_t Db char(64) DEFAULT '' NOT NULL,"
456 c_t="$c_t User char(16) DEFAULT '' NOT NULL,"
457 c_t="$c_t Table_name char(60) DEFAULT '' NOT NULL,"
458 c_t="$c_t Grantor char(77) DEFAULT '' NOT NULL,"
459 c_t="$c_t Timestamp timestamp(14),"
f70373f8
AM
460 c_t="$c_t Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index', 'Alter','Create View','Show view') COLLATE utf8_general_ci DEFAULT '' NOT NULL,"
461 c_t="$c_t Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL,"
823c13f7
SZ
462 c_t="$c_t PRIMARY KEY (Host,Db,User,Table_name),"
463 c_t="$c_t KEY Grantor (Grantor)"
464 c_t="$c_t )"
62edb21b 465 c_t="$c_t CHARACTER SET utf8 COLLATE utf8_bin"
73b2386d 466 c_t="$c_t comment='Table privileges';"
823c13f7 467 fi
02e96f2e 468
653cf157 469 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/columns_priv.frm
823c13f7
SZ
470 then
471 c_c="$c_c CREATE TABLE columns_priv ("
472 c_c="$c_c Host char(60) DEFAULT '' NOT NULL,"
62edb21b 473 c_c="$c_c Db char(64) DEFAULT '' NOT NULL,"
823c13f7 474 c_c="$c_c User char(16) DEFAULT '' NOT NULL,"
62edb21b
AM
475 c_c="$c_c Table_name char(64) DEFAULT '' NOT NULL,"
476 c_c="$c_c Column_name char(64) DEFAULT '' NOT NULL,"
823c13f7 477 c_c="$c_c Timestamp timestamp(14),"
f70373f8 478 c_c="$c_c Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL,"
823c13f7
SZ
479 c_c="$c_c PRIMARY KEY (Host,Db,User,Table_name,Column_name)"
480 c_c="$c_c )"
62edb21b 481 c_c="$c_c CHARACTER SET utf8 COLLATE utf8_bin"
73b2386d
AM
482 c_c="$c_c comment='Column privileges';"
483 fi
484
f70373f8
AM
485 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/procs_priv.frm
486 then
487 c_pp="$c_pp CREATE TABLE procs_priv ("
488 c_pp="$c_pp Host char(60) binary DEFAULT '' NOT NULL,"
489 c_pp="$c_pp Db char(64) binary DEFAULT '' NOT NULL,"
490 c_pp="$c_pp User char(16) binary DEFAULT '' NOT NULL,"
491 c_pp="$c_pp Routine_name char(64) binary DEFAULT '' NOT NULL,"
492 c_pp="$c_pp Routine_type enum('FUNCTION','PROCEDURE') NOT NULL,"
493 c_pp="$c_pp Grantor char(77) DEFAULT '' NOT NULL,"
494 c_pp="$c_pp Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL,"
495 c_pp="$c_pp Timestamp timestamp(14),"
496 c_pp="$c_pp PRIMARY KEY (Host,Db,User,Routine_name,Routine_type),"
497 c_pp="$c_pp KEY Grantor (Grantor)"
498 c_pp="$c_pp )"
499 c_pp="$c_pp CHARACTER SET utf8 COLLATE utf8_bin"
500 c_pp="$c_pp comment='Procedure privileges';"
501 fi
502
503
73b2386d
AM
504 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/help_topic.frm
505 then
506 c_ht="$c_ht CREATE TABLE help_topic ("
507 c_ht="$c_ht help_topic_id int unsigned not null,"
508 c_ht="$c_ht name varchar(64) not null,"
509 c_ht="$c_ht help_category_id smallint unsigned not null,"
510 c_ht="$c_ht description text not null,"
511 c_ht="$c_ht example text not null,"
512 c_ht="$c_ht url varchar(128) not null,"
513 c_ht="$c_ht primary key (help_topic_id),"
514 c_ht="$c_ht unique index (name)"
515 c_ht="$c_ht )"
516 c_ht="$c_ht CHARACTER SET utf8"
517 c_ht="$c_ht comment='help topics';"
518 fi
519
520 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/help_category.frm
521 then
522 c_hc="$c_hc CREATE TABLE help_category ("
523 c_hc="$c_hc help_category_id smallint unsigned not null,"
524 c_hc="$c_hc name varchar(64) not null,"
525 c_hc="$c_hc parent_category_id smallint unsigned null,"
526 c_hc="$c_hc url varchar(128) not null,"
527 c_hc="$c_hc primary key (help_category_id),"
528 c_hc="$c_hc unique index (name)"
529 c_hc="$c_hc )"
530 c_hc="$c_hc CHARACTER SET utf8"
531 c_hc="$c_hc comment='help categories';"
532 fi
533
534 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/help_keyword.frm
535 then
536 c_hk="$c_hk CREATE TABLE help_keyword ("
537 c_hk="$c_hk help_keyword_id int unsigned not null,"
538 c_hk="$c_hk name varchar(64) not null,"
539 c_hk="$c_hk primary key (help_keyword_id),"
540 c_hk="$c_hk unique index (name)"
541 c_hk="$c_hk )"
542 c_hk="$c_hk CHARACTER SET utf8"
543 c_hk="$c_hk comment='help keywords';"
544 fi
545
546 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/help_relation.frm
547 then
548 c_hr="$c_hr CREATE TABLE help_relation ("
549 c_hr="$c_hr help_topic_id int unsigned not null references help_topic,"
550 c_hr="$c_hr help_keyword_id int unsigned not null references help_keyword,"
551 c_hr="$c_hr primary key (help_keyword_id, help_topic_id)"
552 c_hr="$c_hr )"
553 c_hr="$c_hr CHARACTER SET utf8"
554 c_hr="$c_hr comment='keyword-topic relation';"
555 fi
556
557 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/time_zone_name.frm
558 then
559 c_tzn="$c_tzn CREATE TABLE time_zone_name ("
560 c_tzn="$c_tzn Name char(64) NOT NULL,"
561 c_tzn="$c_tzn Time_zone_id int unsigned NOT NULL,"
562 c_tzn="$c_tzn PRIMARY KEY Name (Name)"
563 c_tzn="$c_tzn )"
564 c_tzn="$c_tzn CHARACTER SET utf8"
565 c_tzn="$c_tzn comment='Time zone names';"
566 fi
567
568 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/time_zone.frm
569 then
570 c_tz="$c_tz CREATE TABLE time_zone ("
571 c_tz="$c_tz Time_zone_id int unsigned NOT NULL auto_increment,"
572 c_tz="$c_tz Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,"
573 c_tz="$c_tz PRIMARY KEY TzId (Time_zone_id)"
574 c_tz="$c_tz )"
575 c_tz="$c_tz CHARACTER SET utf8"
576 c_tz="$c_tz comment='Time zones';"
577 fi
578
579 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/time_zone_transition.frm
580 then
581 c_tzt="$c_tzt CREATE TABLE time_zone_transition ("
582 c_tzt="$c_tzt Time_zone_id int unsigned NOT NULL,"
583 c_tzt="$c_tzt Transition_time bigint signed NOT NULL,"
584 c_tzt="$c_tzt Transition_type_id int unsigned NOT NULL,"
585 c_tzt="$c_tzt PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)"
586 c_tzt="$c_tzt )"
587 c_tzt="$c_tzt CHARACTER SET utf8"
588 c_tzt="$c_tzt comment='Time zone transitions';"
589 fi
d405c4eb 590
73b2386d
AM
591 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/time_zone_transition_type.frm
592 then
593 c_tztt="$c_tztt CREATE TABLE time_zone_transition_type ("
594 c_tztt="$c_tztt Time_zone_id int unsigned NOT NULL,"
595 c_tztt="$c_tztt Transition_type_id int unsigned NOT NULL,"
596 c_tztt="$c_tztt Offset int signed DEFAULT 0 NOT NULL,"
597 c_tztt="$c_tztt Is_DST tinyint unsigned DEFAULT 0 NOT NULL,"
598 c_tztt="$c_tztt Abbreviation char(8) DEFAULT '' NOT NULL,"
599 c_tztt="$c_tztt PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)"
600 c_tztt="$c_tztt )"
601 c_tztt="$c_tztt CHARACTER SET utf8"
602 c_tztt="$c_tztt comment='Time zone transition types';"
603 fi
604
605 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/time_zone_leap_second.frm
606 then
607 c_tzls="$c_tzls CREATE TABLE time_zone_leap_second ("
608 c_tzls="$c_tzls Transition_time bigint signed NOT NULL,"
609 c_tzls="$c_tzls Correction int signed NOT NULL,"
610 c_tzls="$c_tzls PRIMARY KEY TranTime (Transition_time)"
611 c_tzls="$c_tzls )"
612 c_tzls="$c_tzls CHARACTER SET utf8"
613 c_tzls="$c_tzls comment='Leap seconds information for time zones';"
823c13f7
SZ
614 fi
615
f70373f8
AM
616 if test ! -f $MYSQL_DATA_DIR/mysqldb/mysql/proc.frm
617 then
618 c_p="$c_p CREATE TABLE proc ("
619 c_p="$c_p db char(64) collate utf8_bin DEFAULT '' NOT NULL,"
620 c_p="$c_p name char(64) DEFAULT '' NOT NULL,"
621 c_p="$c_p type enum('FUNCTION','PROCEDURE') NOT NULL,"
622 c_p="$c_p specific_name char(64) DEFAULT '' NOT NULL,"
623 c_p="$c_p language enum('SQL') DEFAULT 'SQL' NOT NULL,"
624 c_p="$c_p sql_data_access enum('CONTAINS_SQL',"
625 c_p="$c_p 'NO_SQL',"
626 c_p="$c_p 'READS_SQL_DATA',"
627 c_p="$c_p 'MODIFIES_SQL_DATA'"
628 c_p="$c_p ) DEFAULT 'CONTAINS_SQL' NOT NULL,"
629 c_p="$c_p is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL,"
630 c_p="$c_p security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL,"
631 c_p="$c_p param_list blob DEFAULT '' NOT NULL,"
632 c_p="$c_p returns char(64) DEFAULT '' NOT NULL,"
633 c_p="$c_p body longblob DEFAULT '' NOT NULL,"
634 c_p="$c_p definer char(77) collate utf8_bin DEFAULT '' NOT NULL,"
635 c_p="$c_p created timestamp,"
636 c_p="$c_p modified timestamp,"
637 c_p="$c_p sql_mode set("
638 c_p="$c_p 'REAL_AS_FLOAT',"
639 c_p="$c_p 'PIPES_AS_CONCAT',"
640 c_p="$c_p 'ANSI_QUOTES',"
641 c_p="$c_p 'IGNORE_SPACE',"
642 c_p="$c_p 'NOT_USED',"
643 c_p="$c_p 'ONLY_FULL_GROUP_BY',"
644 c_p="$c_p 'NO_UNSIGNED_SUBTRACTION',"
645 c_p="$c_p 'NO_DIR_IN_CREATE',"
646 c_p="$c_p 'POSTGRESQL',"
647 c_p="$c_p 'ORACLE',"
648 c_p="$c_p 'MSSQL',"
649 c_p="$c_p 'DB2',"
650 c_p="$c_p 'MAXDB',"
651 c_p="$c_p 'NO_KEY_OPTIONS',"
652 c_p="$c_p 'NO_TABLE_OPTIONS',"
653 c_p="$c_p 'NO_FIELD_OPTIONS',"
654 c_p="$c_p 'MYSQL323',"
655 c_p="$c_p 'MYSQL40',"
656 c_p="$c_p 'ANSI',"
657 c_p="$c_p 'NO_AUTO_VALUE_ON_ZERO',"
658 c_p="$c_p 'NO_BACKSLASH_ESCAPES',"
659 c_p="$c_p 'STRICT_TRANS_TABLES',"
660 c_p="$c_p 'STRICT_ALL_TABLES',"
661 c_p="$c_p 'NO_ZERO_IN_DATE',"
662 c_p="$c_p 'NO_ZERO_DATE',"
663 c_p="$c_p 'INVALID_DATES',"
664 c_p="$c_p 'ERROR_FOR_DIVISION_BY_ZERO',"
665 c_p="$c_p 'TRADITIONAL',"
666 c_p="$c_p 'NO_AUTO_CREATE_USER',"
667 c_p="$c_p 'HIGH_NOT_PRECEDENCE'"
668 c_p="$c_p ) DEFAULT '' NOT NULL,"
669 c_p="$c_p comment char(64) collate utf8_bin DEFAULT '' NOT NULL,"
670 c_p="$c_p PRIMARY KEY (db,name,type)"
671 c_p="$c_p )"
672 c_p="$c_p character set utf8"
673 c_p="$c_p comment='Stored Procedures';"
674 fi
675
aac2c31f 676 mkdir -p "$MYSQL_DATA_DIR" > /dev/null 2>&1
f5d63301
AM
677 # Using mysql:mysql for MYSQL_CLUSTER_DIR is creating SECURITY hole, root:root is proper
678 chown root:root "$MYSQL_CLUSTER_DIR"
679 chown mysql:mysql "$MYSQL_CLUSTER_DIR/mysqldb" "$MYSQL_DATA_DIR" > /dev/null 2>&1
653cf157 680 chmod 751 "$MYSQL_CLUSTER_DIR" "$MYSQL_CLUSTER_DIR/mysqldb"
444f9f3c
AM
681
682 if [ -f /usr/share/mysql/mysqld.conf -a ! -f "$MYSQL_CLUSTER_DIR/mysqld.conf" ]; then
e52e4ab6
ER
683 sed -e "s#\(datadir.*\)=.*#\1= $MYSQL_DATA_DIR#g" \
684 -e "s#\(pid-file.*\)=.*#\1= $MYSQL_PIDFILE#g" \
685 -e "s#\(socket.*\)=.*#\1= $MYSQL_SOCKET#g" \
444f9f3c 686 /usr/share/mysql/mysqld.conf > "$MYSQL_CLUSTER_DIR/mysqld.conf"
54a1f368 687 chown root:root "$MYSQL_CLUSTER_DIR/mysqld.conf"
444f9f3c
AM
688 chmod 640 "$MYSQL_CLUSTER_DIR/mysqld.conf"
689 fi
cc4d3f78
AM
690
691 if [ ! -e /var/lib/mysql/mysql.sock ]; then
692 ln -s "$MYSQL_SOCKET" /var/lib/mysql/mysql.sock
693 fi
aac2c31f 694
e9ca44ab 695 if /usr/sbin/mysqld --bootstrap --skip-grant-tables \
823c13f7
SZ
696 --datadir=$MYSQL_DATA_DIR --user=$MYSQL_USER << END_OF_DATA
697CREATE DATABASE mysql;
e9ca44ab 698use mysql;
823c13f7
SZ
699$c_d
700$i_d
701
702$c_h
703$i_h
e9ca44ab 704
823c13f7
SZ
705$c_u
706$i_u
707
708$c_f
709$i_f
710
711$c_t
712$c_c
73b2386d
AM
713
714$c_ht
715$c_hc
716$c_hk
717$c_hr
718
719$c_tzn
720$c_tz
721$c_tzt
722$c_tztt
723$c_tzls
f70373f8
AM
724
725$c_p
726$c_pp
823c13f7 727END_OF_DATA
d405c4eb 728 then
e9ca44ab 729 ok
aac2c31f 730 cat << END_OF_MSG
6a46c354 731
732PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL USERS!
81e0333c 733This is done (after starting database; press enter when asked for password) with:
6a46c354 734
81e0333c
AM
735/usr/bin/mysqladmin -u mysql -p -S $MYSQL_SOCKET password 'password'
736/usr/bin/mysqladmin -h $hostname -u mysql -p -S $MYSQL_SOCKET password 'password'
737/usr/bin/mysqladmin -u mysql_logrotate -p -S $MYSQL_SOCKET password 'password'
6a46c354 738
aac2c31f 739NOTE: mysql_logrotate password should be placed to $MYSQL_CONFIG in
6a46c354 740mysqladmin section. See the manual for more instructions.
e9ca44ab 741
742END_OF_MSG
d405c4eb 743 else
e9ca44ab 744 fail
745 cat << END_OF_MSG
746Installation of grant tables FAILED!
747
748Examine the logs in $MYSQL_DATA_DIR for more information. You can
749also try to start the mysqld demon with:
750
751/usr/sbin/mysqld --skip-grant &
752
753You can use the command line tool /usr/bin/mysql to connect to the mysql
754database and look at the grant tables:
755
756shell> /usr/bin/mysql -u mysql mysql
757mysql> show tables
758
759Try 'mysqld --help' if you have problems with paths. Setting on
760logging in /etc/mysqld.conf gives you a log in /var/log/mysql/log that
761may be helpful. The latest information about MySQL is available on the
78b16243 762web at http://www.mysql.com/.
e9ca44ab 763
a3eb9e7b 764Please check PLD Linux ftp site for newer versions of this package.
e9ca44ab 765
766Please consult the MySQL manual section: 'Problems running
767mysql_install_db', and the manual section that describes problems on
768your OS. Another information source is the MySQL email archive.
769Please check all of the above before mailing us! And if you do mail
d405c4eb 770us, you MUST use the /usr/bin/mysqlbug script!
e9ca44ab 771
772END_OF_MSG
773
aac2c31f
AM
774 exit 1
775 fi
776}
777
778#
779# End of useful functions.
780#
781
782RETVAL=0
783case "$action" in
784 start)
785 if [ ! -f $MYSQL_ERRLOG ]; then
786 touch $MYSQL_ERRLOG
823c13f7 787 fi
54a1f368 788 chown mysql:mysql $MYSQL_ERRLOG
aac2c31f
AM
789 chmod 640 $MYSQL_ERRLOG
790
791 for mysqldir in $DB_CLUSTERS; do
792 mysqlstatus "$mysqldir"
793 if [ "$MYSQL_STATUS" = "running" ]; then
794 msg_already_running "MySQL $mysqldir"
795 else
796 mysqlstart "$mysqldir"
797 fi
798 done
799 mysqlsubsys
800 ;;
801 stop)
802 for mysqldir in $DB_CLUSTERS; do
803 mysqlstatus "$mysqldir"
804 if [ "$MYSQL_STATUS" = "not running" ]; then
805 msg_not_running "MySQL $mysqldir"
806 else
807 mysqlstop "$mysqldir"
808 fi
809 done
810 mysqlsubsys
811 ;;
812 status)
9ba824cc 813 status mysqld
aac2c31f
AM
814 for mysqldir in $DB_CLUSTERS; do
815 mysqlstatus "$mysqldir"
816 echo "MySQL cluster $mysqldir: $MYSQL_STATUS"
817 done
818 exit $?
819 ;;
820 restart|force-reload)
95b0575d
ER
821 $0 stop $DB_CLUSTERS
822 $0 start $DB_CLUSTERS
aac2c31f
AM
823 exit $?
824 ;;
825 init)
826 for mysqldir in $DB_CLUSTERS; do
827 mysqlinit "$mysqldir"
828 done
60bd204c 829 exit $?
573e1dcc 830 ;;
6fb7a89b
AM
831 flush-logs)
832 for mysqldir in $DB_CLUSTERS; do
833 mysqlgetconfig "$mysqldir"
7c37979d
ER
834 # just if mysqld is really running
835 if /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" ping >/dev/null 2>&1; then
836 /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" flush-logs
837 fi
6fb7a89b 838 done
6fb7a89b 839 ;;
53a28f77 840 *)
02e96f2e 841 msg_usage "$0 {start|stop|init|restart|force-reload|status}"
842 exit 3
53a28f77 843esac
40c36bca 844
ee9b6a50 845exit $RETVAL
350d9d8c
PG
846
847# vi: shiftwidth=4 tabstop=4
This page took 0.143824 seconds and 4 git commands to generate.