-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathstart
More file actions
86 lines (73 loc) · 2.11 KB
/
start
File metadata and controls
86 lines (73 loc) · 2.11 KB
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/bash -e
QCOMM=""
MYSQL_MODE_ARGS=""
# wait for services to startup
sleep 10
case "$1" in
seed)
# bootstrapping
if [ ! -f /var/lib/mysql/skip-cluster-bootstrapping ]; then
mysql_install_db
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
MYSQL_ROOT_PASSWORD=$(openssl rand -base64 32)
echo "MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD"
fi
cat >/tmp/bootstrap.sql <<EOF
CREATE USER 'xtrabackup'@'127.0.0.1' IDENTIFIED BY '$XTRABACKUP_PASSWORD';
CREATE USER 'xtrabackup'@'localhost' IDENTIFIED BY '$XTRABACKUP_PASSWORD';
GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO 'xtrabackup'@'127.0.0.1';
GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO 'xtrabackup'@'localhost';
CREATE USER 'clustercheck'@'127.0.0.1' IDENTIFIED BY '$CLUSTERCHECK_PASSWORD';
GRANT PROCESS ON *.* TO 'clustercheck'@'127.0.0.1';
CREATE USER 'root'@'%' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
MYSQL_MODE_ARGS+=" --init-file=/tmp/bootstrap.sql"
touch /var/lib/mysql/skip-cluster-bootstrapping
echo -n "Bootstrapping cluster. "
fi
MYSQL_MODE_ARGS+=" --wsrep-new-cluster"
shift 1
echo "Starting seed node"
;;
node)
if [ -z "$2" ]; then
echo "Missing master node address"
exit 1
fi
ADDRS="$2"
SEP=""
for ADDR in ${ADDRS//,/ }; do
if expr "$ADDR" : '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
QCOMM+="$SEP$ADDR"
else
QCOMM+="$SEP$(host -t A "$ADDR" | awk '{ print $4 }' | awk NF | paste -sd ",")"
fi
SEP=,
done
chown mysql:mysql /var/lib/mysql
shift 2
echo "Starting node, connecting to qcomm://$QCOMM"
;;
*)
echo "seed|node <othernode>,..."
exit 1
esac
# start processes
set +e -m
function shutdown () {
echo Shutting down
test -s /var/run/mysql/mysqld.pid && kill -TERM $(cat /var/run/mysql/mysqld.pid)
}
trap shutdown TERM INT
/usr/sbin/mysqld \
$MYSQL_MODE_ARGS \
--wsrep_cluster_name="$CLUSTER_NAME" \
--wsrep_cluster_address="gcomm://$QCOMM" \
--wsrep_sst_auth="xtrabackup:$XTRABACKUP_PASSWORD" \
--default-time-zone="+05:00" \
"$@" 2>&1 &
wait $!
RC=$?
exit $RC