1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#!/bin/sh
#
# This is an example SysV-init-script by Winfried Truemper that you can use
# and modify to your liking
#
PATH="$PATH:@prefix@"
export PATH
MY_CFG="@prefix@/mysql.cfg"
read_mysql_config() {
# this routine requires a sed, which reads even the last line of input
MY_CONFIG_FILE="$1" # file to read setting from
MY_CONFIG_SECTION="$2" # section inside the file
MY_CONFIG_TAG="$3" # name of the setting inside the section
TAB=`printf "\t" ""` # makes the code cut&paste safe
sed -n -f - "$MY_CONFIG_FILE" <<EOF
1,/^\[$MY_CONFIG_SECTION\]/ d
/^\[[a-z]/ q
/^$MY_CONFIG_TAG/ {
s/^$MY_CONFIG_TAG[ $TAB]*=[ $TAB]*\([^ $TAB]*\)/\1/
p
q
}
EOF
}
do_start() {
nohup ./bin/mysqld --defaults-file="$MY_CFG" &
}
do_stop() {
./bin/mysqladmin --defaults-file="$MY_CFG" shutdown
}
do_kill_all() {
PIDS=`ps -efo pid,args | grep mysql | sed -e "s, *.*,," | sort | uniq`
kill $PIDS
sleep 5
kill -9 $PIDS
}
do_kill() {
MY_PIDFILE=`read_mysql_config "$MY_CFG" "mysqld" "pidfile" `
read MY_PID < "$MY_PIDFILE"
kill "$MY_PID"
sleep 2
kill -KILL "$MY_PID"
}
# z.B. mysql.sh admin "ping"
do_admin() {
shift
./bin/mysqladmin --defaults-file="$MY_CFG" $@
exit
}
do_repair() {
MY_DATADIR=`read_mysql_config "$MY_CFG" "mysqld" "datadir" `
./bin/isamchk --defaults-file="$MY_CFG" --repair "$MY_DATADIR/$1"
shift
}
do_repair_all() {
MY_DATADIR=`read_mysql_config "$MY_CFG" "mysqld" "datadir" `
for i in `find "$MY_DATADIR" -name "*.ISM"`
do
./bin/isamchk --defaults-file="$MY_CFG" --repair "$MY_DATADIR/$i"
done
}
MY_BASEDIR=`read_mysql_config "$MY_CFG" "mysqld" "basedir"`
cd "$MY_BASEDIR" || exit 1
while test $# -gt 0
do
MY_ARG="$1"
do_$MY_ARG $@
shift
done
|