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