summaryrefslogtreecommitdiffstats
path: root/abs/core/runit-scripts/runitscripts/services/mysql/run
blob: 8fad493b51c4f1dbacab552fcca6cf1230cc76b8 (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
#!/bin/bash
exec 2>&1
export TERM=linux
. /etc/rc.conf
. /etc/rc.d/functions
stat_runit "Starting Mysql"

MYSQLD_ROOT="/data/srv/mysql"
# source application-specific settings
[ -f /etc/conf.d/mysqld ] && . /etc/conf.d/mysqld
if [ ! `egrep '^mysql:' /etc/group` ]; then
  stat_runit "Adding mysql group"
  groupadd -g 89 mysql

fi
if [ ! `egrep '^mysql:' /etc/passwd` ]; then
  stat_runit "Adding mysql user"
  useradd -u 89 -g mysql -d $MYSQLD_ROOT -s /bin/false mysql
  [ -d $MYSQLD_ROOT ] && chown -R mysql.mysql $MYSQLD_ROOT

fi

if [ ! -d $MYSQLD_ROOT ]; then
  mkdir -p $MYSQLD_ROOT
  /usr/bin/mysql_install_db --datadir=$MYSQLD_ROOT --user=mysql 2>/dev/null 1>/dev/null
  chown -R mysql.mysql $MYSQLD_ROOT
fi

if [ ! -e /var/log/mysqld.log ]; then
  touch /var/log/mysqld.log
  chown mysql /var/log/mysqld.log
fi

if [ ! -d /var/run/mysqld ]; then
  mkdir -p /var/run/mysqld
  chown mysql /var/run/mysqld
fi

#check .err and truncate if more than 30000 lines
ErrFile="/data/srv/mysql/`hostname`.err"
if [[ $(wc -l < $ErrFile) -gt 30000 ]]
then
    tail -n 30000 "$ErrFile" > "$ErrFile.tmp" && mv "$ErrFile.tmp" "$ErrFile"
    chown mysql.mysql "$ErrFile"
fi

HOME=/etc/mysql/
MYSQLADMIN='/usr/bin/mysqladmin'

trap "$MYSQLADMIN shutdown" 0
trap 'exit 2' 1 2 3 15

/usr/bin/mysqld_safe --user=mysql >/dev/null 2>/dev/null & wait