summaryrefslogtreecommitdiff
path: root/support-files/mysql.server-sys5.sh
blob: 4bda51acc4d1486c33ec0dbf16dcffa2585f3934 (plain)
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