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